Skip to content
Ian Scott edited this page Jun 10, 2022 · 15 revisions

Rough plan of experimentation/implementation:

βœ… = done, πŸ“ = work in progress, πŸ’­ = still to be done

βœ… Design prototype PCB, with level shifters and lines for IRQ and DMA
βœ… Source parts & build prototype PCB
βœ… Run RPiISA code on Linux on prototype PCB, validating level shifters, changing design/bodging as needed
βœ… Port RPiISA code to Circle, using PWM audio out
βœ… Extract GUS emulation code from DOSBox
βœ… Implement port-only emulation
πŸ“ Implement IRQs
πŸ’­ Implement sample upload via DMA
πŸ’­ Investigate moving GPIOs to free up I2S pins for better audio output quality via external DAC
πŸ’­ Design release candidate PCB

Known issues

  • DOSBox's GUS emulation faithfully reproduces sample rate drop when going above 14 channels, and my code assumes a constant 44.1KHz
  • The GPIO header does not give enough clearance for the Raspberry Pi when plugged directly in via straight headers. A ribbon cable must be used instead, or a pair of right-angle headers
  • There might not be enough GPIO pins to handle proper DMA
  • The I2S GPIO pins are in the middle of the address lines, preventing the use of a high quality external DAC and preventing use of CM4 or Zero 2 modules.
Clone this wiki locally