Skip to content

Chiptable

Chiptable is, at present, just an ethereal proof of concept for a multi-channel WaveBoy-like soundcard for the Commander X16 or similar 6502 computer.

The idea is a multi-channel audio solution combining the variable clocked DAC of the WaveBoy and applying to a sort of hybrid between LSDJ wave frames and the TG16 sound solution.

The idea is to support 8 voices (channels) with each channel having 256 bytes of sample data divided into 8 frames. Two modes will be supported:

A frame/window mode, which mirrors that of the WaveBoy in that it repeatedly cycles through the 32 samples providing a cyclic waveform. This can be either at fixed 8 block sections or in a free frame mode, where the frame window can move across all 256 bytes (looking at a 32 byte slice).

Or a jumbo frame mode, which operates across the full 256 byte sample and can be used for very short audio clips or long cycles.

Why 256 bytes and 8 frames instead of 512 and 16? This is to be determined but on 8-bit platforms, like those using a 6502 CPU, this presents a nice boundary for efficient loops.

To provide more flexibility, similar to the WaveBoy, there will be a loadable bank of frames/samples which can be loaded directly onto the sound card. How many samples depends on the capability of the microcontroller/FPGA but if looking at the RP2040, up to 256 samples (of 256 bytes) are possible, perhaps more.

Memory Usage

RAM Usage

Sample Banks: (256 * 256) 64k

ROM LUTs

Note/Semi to Timer Value: (64k * 3 bytes) 192k LFO Sine: ??

Proposed Microcontrollers

RP2040

  • Clock Freq: 133 MHz
  • SRAM: 264k
  • Flash: 2MB
  • Timers:
  • 1x 64-bit global
  • 8x PWM 16-bit
  • 8x PIO 32-bit
  • 4x DMA
  • 2x Cortex (microsecond)

RP2350

  • Clock Freq: 150 MHz
  • SRAM: 520k
  • Flash: 4MB
  • Timers:
  • 2x 64-bit global
  • 12x PWM 16-bit
  • 12x PIO 32-bit
  • 4x DMA
  • 2x Cortex (microsecond)
  • 1x RISCV SIO

Ideas

  • Consider a UART instead of MMIO? (See: https://discord.com/channels/547559626024157184/547560914744901644/1439781003370561657)