Access Virus emulator on Zynthian?

I don’t know how widespread the knowledge of this is, but there’s a team that has been working on a CPU emulator for the DSP56300, focusing on getting the Accsss Virus B and C synths working as VST plugins: DSP56300 Emulation Blog.

The emulator is based on a Just-In-Time (JIT) concept whereby blocks of the original DSP code are translated on the fly to native code on which the emulator is running (due to the way the Virus code allegedly modifies its code while running it’s not possible just to translate the ROM once and for all). Thus it actually runs the original ROM code, and as a consequence, the term ‘emulation’ is purely a software concept; the actual audio output is identical to the original instrument, since it is in fact running the same code (albeit analog components such as the DAC and output amplifiers are not identical).

For a while it was constrained to x86, but I was recently made aware of an entry in the development blog from August 2021: “arm64 JIT recompiler has been implemented, which gives a large performance boost on Apple M1, Raspberry Pi and other arm64 based CPUs”. Indeed, a Mac port is available.

Last time I tested the emulator on my 10 year old 2nd generation i5 laptop, it was struggling, and I basically put off trying it again since I felt it would never make it on that platform. But the above wording brings some hope, even though an RPi4 perfomance wise is rather akin to a 2nd generation i5.

Has anyone here attempted to run the Virus emulator on the Zynthian?

1 Like

Laooks like it’s x86 binary only, so no.

Searching a bit more, I found this in the FAQs section: “Yes, native support for ARM64-based devices is supported since plugin version 1.1.9. This increases the execution speed on ARM64 based CPUs by several magnitudes.”.

I’m not sure if the prebuilt binaries are x86 only though. But at any rate, it also goes on to say: “Please note that a 64 bit ARM CPU aka ARMv8, ARM64 or AArch64 and a compatible OS is required, 32 bit / ARMv7 is only supported via interpreter and is very slow.

So for that reason alone, it’s out of the question for the Zynthian with its 32-bit OS for the time being at least.

I also realized that currently only VST2 and VST3 is supported (no LV2 support) so that’s also a hurdle.

1 Like

Looks like it’s in progress though https://github.com/dsp56300/gearmulator/issues/8

I asked the developer about running the emulation on a pi:

Yes, it is unfortunately too slow. A Raspberry Pi 4 currently manages about 40-60 MIPS, for a Virus B you need about 108 minimum. I will be able to increase the performance, but it will probably not be more than twice as fast.

translated. From:

1 Like

I see that work is being done to update Zynthian for Raspberry Pi 5.

This benchmark seems to imply that the Raspberry Pi 5 is much more powerful than the Pi 4.

Maybe there’s hope for some port of DSP56300 over to Zynthian one day.

3 Likes

Yes!, particularly considering that we should get a speed boost from going to 64 bit in addition to RPi 5.

1 Like

As you already know @tunagenes, the porting of the aarch64 DSP56300 plugin to Oram 64/bookworm + Rpi5 is my current dreamiest Zynthian development scenario. It would make it the first non-Access authentic Virus platform worldwide. Not a neglectable feat, eh? :wink:

3 Likes