Skip to content

Release Update 261013

ToughkidDEV edited this page Oct 15, 2026 · 1 revision

MUCOMSX update guide

한국어 · 日本語

New features and fixes since v0.81-beta, file compatibility and safe updating instructions.

Changes since the public release

Item v0.81-beta Current version
60,000-byte editor, 64KiB source, 120KiB music DATA Included Retained
Single-YM2608 extensions, general pages and FM3 slots Included Retained
MSX-MUSIC / internal PSG / msPb0100 Included Corrected stale separate-build documentation
Playback CPU acceleration and /N Included Documentation corrected; not automatic compilation acceleration
SCC/SCC+ SSG extension / msPb0101 Added later Included
#PCMInvert On/Off Added later Included
Compiler search, macro and saving optimization Improved later Included
#OPNA1RhythmMute compilation and session defects Before correction Fixed
Screen 2 voice editor MUCVOICE Not included v0.5beta included in the toolchain ZIP

SSG extension on real MSX hardware

#SSGExtend On approximates unprefixed D/E/F on SCC/SCC+ channels 1–3. It supports @I0..9, @W0..255 and peL,R; 64 signed waveform samples are reduced to 32. Stereo settings become mono gain. Noise/hardware-envelope paths use MAKOTO; MSXD/E/F remain internal PSG.

Detection prefers SCC+ and falls back to ordinary SCC, excludes registered RAM mappers and reversibly checks primary/expanded slots and waveform RAM. It uses existing mapper banks and retains the 512KiB minimum. It does not provide five independent SCC+ waveforms on ordinary SCC. Conflicting native SCC and SSG-extension use of the same cartridge is rejected.

The container is msPb0101: capability byte 26 is 2 for SSG extension or 3 for a native mix; reserved bytes 27–33 are zero. MUB8, muPb and msPb0100 remain distinct, with unknown structures rejected. VGM uses the common SCC clock/port for ordinary-SCC playback. See SSG extension reference. Do not assume third-party MUB players understand MUCOMSX-specific msPb.

PCMInvert does not transform PCM bytes

#PCMInvert On/Off reverses K-channel relative octave >/< direction at compilation. It neither transforms the PCM bank nor adds a runtime inversion operation. Tag-boundary handling was fixed so it is not mistaken for the #pcm filename tag. WAV-to-bank construction with #@pcm is still unsupported.

Rhythm mute and session correctness

The compiler mistakenly set the native-MSX target bit for #OPNA1RhythmMute, producing empty OPNA music streams. That is fixed, as is restoration of the header rhythm mask in MUCPLAY sessions and MUCEDIT integration. Recompile affected old MUBs from their MUC source: replacing a player cannot reconstruct absent music DATA.

The mask filters rhythm key-ons generated by music commands. Explicit y16 is a raw register write and bypasses it; key-offs are never blocked. This intentional rule is retained in MDPlayer comparisons. Rhythm automatic pan pm1 p4..p6 stores a wait for each selected drum command, uses current note length when omitted, and accepts explicit waits 1–255.

Compilation and memory

Empty-page scanning is skipped and active-row search narrowed. Macro definition indexing, copying/collision handling and chunked saving were improved while retaining page entries, first-definition priority and output bytes. Speedup depends on the score; it is not a fixed multiplier.

Capacity and remaining limits

Item Limit
MUC2MUB / MUCPLAY source 65,536 bytes
MUCEDIT document 60,000 bytes after newline normalization
Total compiled music DATA 122,880 bytes, including structures and voice tables
One OPNA page stream 59,546 bytes
One native MSX page stream 59,106 bytes
Mapper RAM minimum 512KiB; not a guarantee for every simultaneous maximum-size session

120KiB is not the complete MUB-file limit. Headers, tags and appended ADPCM are separate. PCM is appended after music/voice DATA during disk output; PCM/chip limits also apply during playback. More installed RAM does not automatically expand these DATA limits.

Nested part branches, extra OPNA/OPNB/OPM chips, @M, PCn, IDE notes and WAV conversion through #@pcm remain unsupported. YM2413/PSG/SCC approximations are not acoustically identical to YM2608 or PC virtual SSG. Heavy scores are not guaranteed to meet every normal-Z80 tick deadline. Automatic acceleration is used during live playback and the previous CPU mode is restored on exit; /N disables automatic selection.

MUCVOICE: edit and audition voices on the MSX

MUCVOICE v0.5beta is included in the same toolchain ZIP as the original four tools. Copy all five COMs and the synthetic factory voice data to one working directory; open MUCVOICE/START.MD for voice-editor help. Complete Korean, English and Japanese manuals are in the separate documentation ZIP. This MSX-DOS2/Nextor Screen 2 editor supports YM2608 FM and SCC/SCC+ voices, DAT/TFI/MUC/VGM import/export, not PCM-bank construction.

  • 12 FM / 32 SCC original factory presets, waveform tiles and file-browser previews.
  • Space auditions a voice; C D E F G A B auditions notes, Shift raises an octave. K opens the full keyboard mode.
  • Type numeric values directly at the cursor, Tab commits/moves, Esc cancels. Held arrows accelerate smoothly; Shift adjusts by one.
  • Separate FM/SCC dirty state and Undo, reusable save names, distinct file errors, stopped notes on navigation/exit.
  • FM graphics describe envelopes/parameters, not the actual synthesized audio waveform.

Supplied presets are original synthesis data. Check the usage terms of imported voices. See QUICK.TXT, KEYBOARD.txt, MUCIO.txt, VGMIO.txt and TFI.txt for controls and formats.

Updating safely

  1. Back up songs/voices/PCM and exit MUCEDIT normally. Release any remaining session with the old MUCPLAY /RELEASE before replacing it.
  2. Replace all five COMs as one release set; check other folders/PATH for stale copies. Do not overwrite edited DAT banks with factory presets. Use an msPb-capable MDPlayer build for msPb playback.
  3. Check DOS 8.3 names, working directory and #voice/#pcm, then recompile. .MD5 is not required. Existing legacy 32-character metadata copying does not calculate/verify the source and is not an integrity proof.
  4. Compare complete MUB bytes from MUC2MUB, MUCPLAY and MUCEDIT using the same saved source/assets. Distinguish unsaved edits/newlines/tags from music-DATA differences.
  5. Check playback, repeats, final silence and MUB/VGM exports. SHA-256 checks file identity, not musical correctness.

Each ZIP includes manifest.json, internal SHA256SUMS.txt and an external .zip.sha256. Check both the archive and extracted files. Component attribution and licenses are in NOTICE.txt / LICENSES/.

Clone this wiki locally