apu: Add new DSP56300 emulator with JIT execution engine

- Fixes a few bugs in the existing C interpreter
- Adds a state abstraction layer to switch between engines at runtime
  and maintain snapshot compatibility
This commit is contained in:
Matt Borgerson
2026-03-20 13:09:34 -07:00
committed by mborgerson
parent a34bb0f8c2
commit 67cc79e663
30 changed files with 2644 additions and 685 deletions
+11
View File
@@ -122,4 +122,15 @@ for sp in "${subprojects[@]}"; do
tar --append --file "$tar_file" --exclude=.git --transform "s,^./,$tar_prefix," ./subprojects/"$(subproject_dir $sp)"
test $? -ne 0 && error "failed to append subproject $sp to $tar_file"
done
# Pre-download dsp56300 pre-built libraries for offline builds (e.g. PPA).
dsp56300_version=$(sed -n "s/^project.*version: *'\([^']*\)'.*/\1/p" subprojects/dsp56300/meson.build)
for target in x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu; do
archive="dsp56300-${dsp56300_version}-${target}.tar.gz"
curl -fsSL "https://github.com/mborgerson/dsp56300/releases/download/v${dsp56300_version}/${archive}" \
-o "subprojects/dsp56300/${archive}"
tar --append --file "$tar_file" --transform "s,^./,$tar_prefix," "./subprojects/dsp56300/${archive}"
rm "subprojects/dsp56300/${archive}"
done
exit 0
+11
View File
@@ -510,6 +510,17 @@ LIBS = [
platform={windows},
submodule=Submodule("subprojects/curl.wrap"),
),
Lib(
"dsp56300",
"https://github.com/mborgerson/dsp56300",
mit,
# Note: This URL points to the dsp56300 license, but the distributed library includes
# additional dependencies. The license file at licenses/dsp56300.license.txt contains
# the dsp56300 license as well as its dependencies.
"https://raw.githubusercontent.com/mborgerson/dsp56300/refs/heads/main/LICENSE",
ships_static=all_platforms,
version="0.1.3",
),
]