Files
qemu-xteink/README.xteink.md
T

1.6 KiB

xteink QEMU fork

Espressif's QEMU fork carrying the xteink X3/X4 (ESP32-C3) machine model and a wasm32 TCG backend (ported from ktock/qemu-wasm), used by xteink-web-emulator to run CrossPoint firmware in the browser.

Branch

  • main — the working branch. Base is Espressif's esp-develop-9.2.2-20260417 (40edccac).

Remotes

Building

Native (parity check — authoritative)

nix develop
./configure --target-list=riscv32-softmmu --with-devices-riscv32=xteink --enable-gcrypt
ninja -C build qemu-system-riscv32

Or build the native xteink target directly:

nix build .#qemu-native-xteink

Agent emulator

nix run .#xteink-emu -- start --firmware firmware.bin --sdcard sdcard.img
nix run .#xteink-emu -- wait --timeout 30 --match 'ready'
nix run .#xteink-emu -- button bottom-2 --hold-ms 100
nix run .#xteink-emu -- screenshot --output screen.png
nix run .#xteink-emu -- stop

State defaults to /tmp/xteink-emu-$UID; pass --state-dir to any subcommand for parallel instances. wait advances a persistent log cursor after each match.

WebAssembly

Driven by the parent repo, not here:

cd ../xteink-web-emulator
make web-dev     # incremental build straight from this tree

The parent's scripts/build-qemu-wasm.sh compiles this checkout inside the emsdk Docker image defined in xteink-web-emulator/qemu/wasm/Dockerfile.