Skip to content

Latest commit

 

History

History
72 lines (50 loc) · 3.11 KB

File metadata and controls

72 lines (50 loc) · 3.11 KB

M5Stack Global Innovation Contest 2026

Project

RetroFM Pocket — A handheld MML-era FM music player and visualizer for M5StickS3

RetroFM Pocket preserves and explains Japanese retro-computer music culture in a device small enough to carry anywhere. M5StickS3 performs the complete playback path locally: LittleFS file access, VGM or MDX interpretation, YM2203 or YM2151 synthesis, optional PDX/ADPCM mixing, real-time spectrum analysis, UI rendering, and speaker output.

Why It Matters

VGM and MDX files are more than recordings. They describe notes, timing, and chip-register activity from an era when musicians composed within strict hardware limits, often using Music Macro Language workflows. Desktop emulators can reproduce this music, but the process is usually invisible. RetroFM Pocket turns it into a tangible, portable exhibit: hear the synthesis and watch the chip activity at the same time.

M5Stack Hardware

Quantity Hardware Role
1 M5Stack M5StickS3 ESP32-S3 controller, display, buttons, storage interface, and speaker output
1 USB-C cable Firmware and LittleFS upload; optional power

No sensor, module, network connection, or companion computer is required during playback.

Software Stack

  • PlatformIO and Arduino framework
  • M5Unified and M5GFX
  • YMFM for YM2203/OPN emulation
  • portable_mdx for YM2151/OPM MDX playback
  • LittleFS for tracks
  • Custom CP932/Shift-JIS title conversion and on-device visualizer

Reproduction

  1. Install Python 3 and PlatformIO.
  2. Clone the repository.
  3. Generate the CC0 demo with python scripts/generate_retrofm_demo.py.
  4. Copy demo/retrofm-pocket-demo.vgm to data/.
  5. Run pio run -e m5sticks3 -j 1.
  6. Connect M5StickS3 over USB-C.
  7. Run pio run -e m5sticks3 -t upload.
  8. Run pio run -e m5sticks3 -t uploadfs.
  9. Reboot and use BtnA/BtnB for track and volume control.

Verified Build

On 2026-08-07, the release firmware built successfully with:

  • RAM: 131,276 / 327,680 bytes (40.1%)
  • Flash: 905,573 / 1,310,720 bytes (69.1%)

Physical-device behavior shown in the contest media must be recorded after flashing the contest build; a successful local build alone is not treated as hardware validation.

Media Plan

The submission should show:

  1. M5StickS3 booting into RetroFM Pocket.
  2. Pocket Signal and its Japanese GD3 title on screen.
  3. Audible FM playback from the built-in speaker.
  4. Spectrum and chip meters moving in real time.
  5. Short presses changing tracks.
  6. Long presses changing volume and displaying VOL.
  7. A final wide shot proving the experience is self-contained.

Do not show or distribute unlicensed game music. Use only the generated CC0 demo in public contest media unless separate permission is documented.

Submission Files