XDJ-AZ emulator¶
The XDJ-AZ emulator runs EP147 on a computer with
the same AZ-MODS core a deck runs, for building and testing mods before deploying them to the
AZ. It ships no firmware: tools/az-emu-pull.py copies the system from your own deck once,
over SSH, and the copy stays on your computer. The pull never reads the deck's update
partition, which holds the firmware encryption key, and refuses to write an image in which
its scan finds key material.
The emulator's own guides have the full steps and requirements:
| Guide | Covers |
|---|---|
| Requirements | each platform's tools, with the install commands |
| Guide | install, copy the system, build, run, load a mod, the test suite |
| Windows | the same on a Windows PC |
Platforms¶
| Platform | Support |
|---|---|
| Mac (Apple Silicon) | full speed |
| Windows PC | software emulation (audio does not play at full speed) |
| Intel Mac | software emulation (audio does not play at full speed); not tested |
| Linux | not supported yet |
The one-time pull needs a deck on firmware 2.00+ with SSH access. AZ-MODS 1.2.3 asks to allow the new key with a Remote access prompt once no deck has a track loaded. The build needs about 15 GB free (10 GB of it in Docker for the kernel), and the emulated deck storage grows to about 10 GB in use.
Set up the emulator and load a mod¶
Setup, once (the Guide has each step in full):
- Copy the system from your deck, with the SSH key the desktop app wrote:
tools/az-emu-pull.py --host <deck IP> --key ~/.azmods/ssh/xdjaz_ecdsa - Build the kernel, guest tools and boot image with
./build.sh, and QEMU and the app withqemu/build.shandtools/build-app.sh. - Start the emulator (
AZ-EMU.appon a Mac; on a PC, see Windows), then put the published AZ-MODS set on the emulated USB withtools/az-mods-fetch.py(it checks the set's signature).
Loading your mod, each time you build it:
tools/az-push-mod.py path/to/my-mod/
This copies the mod to the emulated USB, turns it on and approves it, so there is no New mod found: allow? step. Installing from a repository (Browse and Repositories) is not yet verified on the emulator; check it on a deck.
Test suite¶
tools/az-emu-test.py boots the emulator headless and checks AZ-MODS itself: EP147 stays up
and maps the expected azmod.so and azstem.so, then the controls, stems, drum roll, the
4-deck view, the Mod Menu and Themes, each stage paired with a control that must fail. It runs
on Windows too. It tests an AZ-MODS build, not a mod; for a mod's own checks, use the
test harness.