Skip to content

Releases: little-scale/smsggdj

v0.29

19 Jun 12:19

Choose a tag to compare

Small release.

Fixed

  • INSTR TYPE and noise RATE now adjust both ways. Holding 2 and tapping Left/Right (or Up/Down) on the instrument TYPE row, or a noise instrument's RATE row, only ever cycled forward — both now step back with 2+Left/Down and forward with 2+Right/Up, like every other field.

Download smsggdj_v0_29.sms (Master System) or smsggdj_v0_29.gg (Game Gear), flash to a cart or open in an emulator.

v0.28

17 Jun 06:40

Choose a tag to compare

SMSGGDJ v0.28 — release notes

A focused round of WAV-instrument fixes — and the YM2413 FM Sound Unit is now confirmed on real hardware.

Changed

  • WAV note length now follows HLD. A wavetable used to trail on at full level through its hidden (uneditable) decay, so HLD barely changed the length. A WAV now plays for exactly the hold then cuts — HLD 1E set the length, F rings. New WAV instruments default to HLD 6.

Fixed

  • WAV instruments no longer mute the noise channel. A wavetable on a tone channel used to silence the noise voice for as long as it played; now noise plays alongside a wave (as it already did with samples), so you can layer a WAV lead/pad with a noise hat/snare. Pitched (rate-3) noise still falls back to a fixed rate while the wave's DAC owns tone 3.

Hardware

  • The full YM2413 FM stack — melodic FM, FMDRM drums, custom presets, and the X/Y/table commands — is now verified on a PAL SMS1 + FM Sound Unit.

Save format unchanged (SMDJ3), compatible with v0.26/v0.27 songs. SMS + Game Gear.

v0.27

17 Jun 02:51

Choose a tag to compare

SMSGGDJ v0.27 — release notes

The headline: H (hop) is now per-channel. Ending a phrase early with H used to cut every track short because the row counter was shared across the whole engine. Each track now keeps its own phrase-row position, so H ends only the phrase it's written on — tracks can run independent phrase lengths against the shared tempo/groove. (Tempo T, groove G and wait W stay global.)

Changed

  • LIVE chain swaps quantize to the next bar. Queueing a chain on the SONG screen in LIVE mode now lands on the next 16-row phrase boundary, regardless of the current chain's length (no more waiting for the whole chain to finish). Tracks keep their row counters running while silent, so a chain queued onto a stopped track starts bar-aligned with the playing tracks.
  • LIVE mode starts silent. Triggering from a stopped state in LIVE no longer fires the whole song — the clock starts with every track silent and only the cell you trigger plays, so you build the mix one track at a time.
  • Version-stamped builds. Release ROMs are named smsggdj_<ver>.sms / .gg, and the boot splash now shows the git build hash beneath the version, so a stale flash is obvious at a glance.

Fixed

  • H (hop) is per-channel (see above).

Save format unchanged (SMDJ3), fully compatible with v0.26 songs. SMS + Game Gear.

v0.26

16 Jun 20:06

Choose a tag to compare

SMSGGDJ v0.26 — release notes

The headline: YM2413 FM Sound Unit support (SMS only, optional, off by default — it sounds alongside the PSG on the built-in/FM-unit hardware and SMSPlus). A whole second timbral palette.

Added — FM (YM2413)

  • FM synthesis — a new FM instrument type plays the chip's 15 ROM patches. Pick a PROG (1–15) and VOL; notes play in tune from a region F-number table. HLD sets note length (F = ring, 1E = auto key-off). Enable via OPTIONS → FM (persisted).
  • FM tables, transpose, and commands — FM instruments honour TBL/TBS tables (volume column re-levels live, pitch column arps), TSP transpose, the X per-note volume command, and a new Y command to set a note's FM program.
  • FM drums (FMDRM) — the YM2413's rhythm mode as a kit: one instrument, the note picks the drum (BD/SD/TT/TC/HH, C/C♯/D/D♯/E in any octave). Rides on spare FM voices, so it costs none of the 4 tracks.
  • FM custom presets — a PRST field selects one of 8 ROM-baked custom timbres (LEAD, EPNO, SBASS, BELL, BRASS, PAD, PLUCK, SINE) loaded into the YM2413 user patch. (One custom timbre at a time — the chip has a single user patch.)
  • FM preset editor (tools/fmpatch.html) — a single-file, offline browser tool to edit the 8 presets (per-operator MUL/AR/DR/SL/RR/KSL/TL, feedback, waveforms, names) and audition them through a JS port of the emu2413 YM2413 core. Download a patched ROM. No toolchain.

Changed

  • PHRASE column spacingNOTE I CMD with room to breathe (SMS + Game Gear).

Fixed

  • WAV instruments: HLD is editable again (the cursor was skipping the field).

FM instruments and tracks persist to SRAM like any other; the format stays SMDJ3, fully backward-compatible. SMS save/SRAM hardware-verified; FM-unit and Game Gear hardware still want a check.

v0.25

15 Jun 23:32

Choose a tag to compare

SMSGGDJ v0.25 — release notes

Added

  • X command — per-note volume. Xxx sets a triggered note's volume (0–F); the per-note accent that went
    missing when E became ATK/DCY.
  • VIDEO override in OPTIONS (SMS). VID is now editable — AUTO / PAL / NTSC — and persists in SRAM,
    re-tuning note tables + sample feed live.
  • Note-advanced tables. TBS 0 (shown N) steps a table one row per played note (persists across notes,
    H-aware) → arpeggios and polymeter against the phrase.
  • SMP transpose. TSP is back on sample instruments — +1/+2/+3 auditions adjacent samples in a bank.
  • Ableton → song converter (tools/als2smdj.html). Drop a Live Set; the first 3 MIDI tracks' Session
    clips become phrases/chains (16th grid, long clips spill, phrase de-dup, octave-fold, optional
    velocity→X). Loads via savetool.html.

Changed

  • Saved colour scheme applies before the boot splash (no default flash).

Fixed

  • Game Gear PHRASE/CHAIN headers now show correctly, and the NOTE/I/CMD columns are spaced out.
  • Persisted sync mode no longer clobbered at boot.

v0.24

15 Jun 08:57

Choose a tag to compare


SMSGGDJ v0.24

AHD instrument envelopes. Instruments now use a single attack / hold / decay volume envelope, replacing
the old ENV/SPD/LEN controls:

  • VOL is the peak/hold level; ATK, HLD, DCY are all nibbles.
  • ATK / DCY are ramp rates (ticks per volume step; 0 = instant). A full ramp = VOL × rate.
  • HLD: 0 = no hold, 1–E = ×2 ticks, F = hold forever (sustain).
  • E xy re-slopes the ramps live (ATK = x, DCY = y); K still hard-cuts.
  • New instruments default to ATK 0 / HLD 1 / DCY 3. WAV uses HLD as its note length; SMP unaffected.

Sync to Ableton Link. A new companion bridge — smsggdj-link-esp32
(https://github.com/little-scale/smsggdj-link-esp32), an ESP32-C3 — joins a Link session over WiFi and
drives SYNC: IN, so the tracker follows Ableton Live's tempo and transport. Verified on real hardware
(wiring in HARDWARE.md).

SYNC: IN stays beat-aligned. While following an external clock the engine locks to a flat groove 6 (24
PPQN) and ignores the song's stored groove and the W command, so any song lines up with the master at
any tempo. Non-destructive — your groove returns when you leave SYNC: IN.

v0.23

14 Jun 22:20

Choose a tag to compare

SMSGGDJ v0.23

Saves

  • 32 KB SRAM → 6 save slots (auto-detected; falls back to 3/1). Verified on a Master Everdrive X7.
  • OPTIONS persist — your colour palette + sync mode survive power-off.

Look

  • 8 UI palettes are now user-recolourable (numbered 0–7) via the new browser tool palette.html → patch + download a ROM, no rebuild.

Sequencing

  • I command now masks by a per-phrase play count, so one phrase varies across its repeats (no cloning).

Tools

  • savetool.html: 8/16/32 KB cart-size selector + a song viewer (decodes a slot to song/phrases/instruments).

Housekeeping

  • ROMs renamed to smsggdj.sms / smsggdj.gg.

Binaries: smsggdj.sms (Master System) + smsggdj.gg (Game Gear).

v0.22

14 Jun 14:53

Choose a tag to compare

Added 4x sample playback mode. Cleaned up sample playback routine. Removed attract demo mode pipeline; demo is retained inside of ROM binary and can be packaged with build as included song/demo.smdj.

v0.21

14 Jun 09:15

Choose a tag to compare

Small changes and cleanups around WAVE and SMP instruments as well as changing the I command to a bitmask of n reps.

v0.2

13 Jun 14:17

Choose a tag to compare

Binaries are tested on hardware and emulation. The "demo" versions will automatically load and play a simply demo.