There seems to be a lot of the code that assumes only four directions. So I simulated diagonal movement by issuing up/down and left/right in alternating frame pairs. Unfortunately, this makes the diagonal movement seem sluggish.
The code for dealing with the 5200 joystick appears to have been left mostly intact. The conversion layer just inserts fake 5200 joystick values based on XL/XE PORTA values. I'm afraid I got confused trying to trace through all of this.
I made the Desireless - Voyage Voyage examples using phaeron's techniques as reverse engineered from his 60FPS demos. Original thread here. Some more examples using Bon Jovi here. Both rely on instantaneous XEX segment loads as found in emulators. They have gaps for loading on real hardware. I didn't know about the PCM Audio Experiments thread. Thanks for the pointer!
Unfortunately the PWM technique loses precision the higher the frequency. At 15Khz it has around 6.5 bits. So at 45Khz it would only have around 2 bits of precision assuming you could properly time everything. At that point it would be better to go back to volume-only mode which has 4 bits of precision.
Unrolled LDA/STAs could do about 13 AUDC updates per scanline which translates to about 195KHz. At that frequency you could apply some dithering to the 4-bit samples to increase the precision. If my math is right that would get you to about 6 bits of precision at 48Khz.