Gakken NSX39 Pocket-Miku Firmware For M-VAVE FM-1
Generate.fwsc update image.
- Custom firmware
- Stable
- Medium brick risk
This project hasn't been claimed by its maintainer yet, so its details come from the community. Is it yours? Claim it
Initial GPL-3.0-only source release of the NSX39 vocal firmware and browser-local firmware generator for M-VAVE FM-1.
This release corresponds to the current FM-1_947 debug firmware, at commit d7e45f2bbcc77f3fc4ac3fd75bdcfebbd6d321b2.
- Selectable syllables, DoReMi, and 16 lyric memories.
- Live waveform, ADSR and articulation display with kana/romaji labels.
- MIDI lyric-memory and device-settings editors, including an on-screen keyboard for all 128 syllables.
- One autosave attempt per settled parameter change, uninterrupted audio during saves, and explicit backed-up storage initialization.
Source only: no NSX39 dump, recordings, extracted voice bank or generated firmware package is included. Supply your own supported NSX39 SPI dump to the firmware generator; extraction and generation run locally in the browser.
Build instructions and pinned toolchain/SDK references are in docs/BUILDING.md. Third-party licenses and credits are included. GitHub's source ZIP/tarball and the attached archive contain the tagged source; SHA256SUMS.txt verifies the attached archive.
Validation: tagged-commit CI passed; codec, controller, journal/power-cut, MIDI, updater and dirty-SRAM startup checks passed. FM-1_947 installation and lyric writes/readback were verified on physical hardware. This remains experimental vocal firmware: GM tones/original hardware effects and full Yamaha behavioral equivalence are unavailable; see docs/COMPATIBILITY.md and docs/VALIDATION.md.
Before you start
- How hard is it?
- EasyCopy a file or use a web page. No extra software.
- What you need
- A USB or MIDI cable
- Comfort with the command line
- A computer
- Can it break my device?
- Small chance of trouble, with a way to recover.
- Can I undo it?
- The project doesn't say. Assume you can't.
Did it work for you?
Did Gakken NSX39 Pocket-Miku Firmware For M-VAVE FM-1 v0.0.1 work on your M-VAVE FM-1?
No reports yet for v0.0.1.
One-tap reports from owners. Bricked reports are checked before they count.
Compatibility
Devices: M-VAVE FM-1.
No compatibility information yet.
Getting started
From the project's README ("Use"):
- Buy a NSX39, open it, and dump the SPI Flash (MX25L series),
- Open the generator and select your own NSX39 SPI dump.
- Generate.fwsc update image.
- Upload the image to FM-1 emulator or test on a real hardware.sEx MIDI access. Installation begins only after this explicit action.
Supported input is the analyzed 2,097,152-byte flash image, optionally followed by the 272-byte programmer trailer. Flash SHA-256: 4e9b8eb35198f2b809fa49f9c704a8982ec6b5fa6cd610c4bde807d8fb02a9e4. Unknown or modified flash contents are rejected, including user-edited persistent slots. Supporting other revisions requires an explicit validated profile.
On the FM-1:
Control Debug behavior ALGORITHM encoder Selectable syllable → DoReMi → Lyrics 00–15 SELECT encoder Manual: pronunciation 0–127, wrapping. Lyric: left restarts, right reserved PRESETS encoder Cycle hiragana, katakana and romaji labels 27 keys Monophonic trigger/pitch; each new key press advances one lyric syllable OCT− / OCT+ Three registers: MIDI 53–79 (default OCT0), 65–91, 77–103 Both OCT buttons, short press Toggle settings; knob 1 selects an item, knob 2 changes it Knobs 1–4 Attack / decay / sustain / release; live amplitude envelope LFO / EDIT / GLO / HOME / REC Vibrato on/off / type / rate / delay / depth SCL / ENV Automatic pitch / automatic dynamics switches (native approximations) …
Risk and recovery
- Brick risk
- Medium
From the project's README ("Updates and validation"):
The two-stage updater and RAM-resident loader are reused from Felucca. The loader verifies layout, chip key, whole-package CRC and sector consistency before replacing the application; it preserves flash [0,0x4000) and verifies written sectors. The application can write only the five OTA staging sectors and two separate settings-journal sectors. No NSX39 firmware-update command is forwarded to flash. A failed or interrupted transfer must be resumed with the same generated package. Read update safety before hardware tests.
The web installer shows progress for loader staging, full-package verification, application transfer, and restart/identity confirmation. It also shows the device, bytes sent, request count, elapsed time, average transfer rate and last response age. Waiting for USB reconnection uses an indeterminate bar; success requires the expected firmware identity. Percentages describe the current transfer stage.
Tests cover lyric stepping/looping/rewind, reserved SELECT direction, MIDI channel isolation, preview state, cross-language codec agreement, malformed input and completion gates, all 128 pronunciations, C sanitizers, package round trips, and exact native/WASM output agreement at MIDI 53, 65, 69, 77, 91 and 103. Upstream updater tests cover wrong-board images, corruption, changed transfer sectors, chip-key mismatch, interrupted staging, preservation of the boot head/user data, and repeat-install no-op behavior. See validation for limits and reproduction. …
Releases
| Version | Name | Released |
|---|---|---|
| v0.0.1 | —Latest | 28 October 2026 |
Credits, license and support
- License
- GPL-3.0