diff --git a/.gitignore b/.gitignore
index 9b8d3ea5d9..eb4392313e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -164,5 +164,3 @@ trace-ust-all.h
trace-ust-all.c
/target/arm/decode-sve.inc.c
-/libxdc
-/capstone_v4
diff --git a/.gitmodules b/.gitmodules
index 19792c9a11..85f3fb7962 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -61,3 +61,9 @@
[submodule "roms/qboot"]
path = roms/qboot
url = https://github.com/bonzini/qboot
+[submodule "libxdc"]
+ path = libxdc
+ url = https://github.com/nyx-fuzz/libxdc.git
+[submodule "capstone_v4"]
+ path = capstone_v4
+ url = https://github.com/aquynh/capstone.git
diff --git a/capstone_v4 b/capstone_v4
new file mode 160000
index 0000000000..0efa3cc530
--- /dev/null
+++ b/capstone_v4
@@ -0,0 +1 @@
+Subproject commit 0efa3cc530ea188c0e03c945ab884ee19dd16342
diff --git a/compile_qemu_nyx.sh b/compile_qemu_nyx.sh
index 7225af05ca..767c6f5180 100755
--- a/compile_qemu_nyx.sh
+++ b/compile_qemu_nyx.sh
@@ -18,35 +18,116 @@ set -e
# You should have received a copy of the GNU General Public License
# along with QEMU-PT. If not, see .
+error () {
+ echo "$0: