So the key bit of code is this:
All settings are selected from the main Atmegatron code. If you download the manual from the Atmegatron Downloads page (not mini page) you can see a lot of the parameters at the back.
Filters are identical to the full Atmegatron (ie in manual).
LFO shapes and speeds are identical to the full Atmegatron (ie in manual).
Waveforms are selected via these tables:
static const unsigned char OSC_PRESET_TABLE[16] PROGMEM = { 0, 4, 9, 1, 2, 3,11,14, 0, 1, 4, 7, 8,12,13,15};
static const unsigned char OSC_PRESET_BANK[16] PROGMEM = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0};
E.g. waveform 0 on the mini is Bank 0 (red) wave 0 (ie square).
waveform 15 on the mini is Bank 0 (red) wave 15 (ie noise)
Envelope presets are derived from these tables:
static const unsigned char ENV_A_PRESET[16] PROGMEM = {0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 5, 7, 7, 7,11,15};
static const unsigned char ENV_DR_PRESET[16] PROGMEM = {0, 3, 5, 5, 7, 7,11,11, 0, 5, 7, 0, 3, 7, 7,15};
static const unsigned char ENV_S_PRESET[16] PROGMEM = {15,0, 0,15, 0, 7, 0,15, 0, 0, 0, 0, 0, 7, 7, 0};
E.g. envelope 0 is Attack = 0, Decay/release = 0, sustain = 15 (full)
envelope 15 is Attack = 15, Decay/release = 15, sustain = 0
Both envelopes use the same lookup tables.
Wavecrusher/Portamento is split into 8 wavecrusher presets (of increasing severity), followed by 8 portamento presets (of increasing time). You can't have both at the same time.
Think that's everything!