Menu

#15 Support RMT 1.34 / LZSS Format

N-A
pending
nobody
None
5
2026-02-25
2024-07-13
Peter Dell
No

With RMT 1.34, the RMT file itself can no longer be replayed directly on the Atari with the classic RMT Player Routine from Raster because of all the new features. LZSS has become the new standard export format for replay.
We should extend the RMT and/or SAP format so it can include format version information and both the source (RMT) and the export (LZSS, mind there are different encodings here, also).

References:
https://github.com/dmsc/lzss-sap/tree/main
https://forums.atariage.com/topic/315537-rmt2lzss-convert-rmt-tunes-to-lzss-for-fast-playback/?do=findComment&comment=5497929

Discussion

  • Piotr Fusik

    Piotr Fusik - 2024-09-04

    I got familiar with lzss-sap. Please confirm:

    1. It's just compressed POKEY registers, no mono/stereo info, no FASTPLAY.
    2. No subsongs, it's just one stream.
    3. Loops are handled by having separate files ? Why three files and not two?

    Do you need to open the LZSS files in RMT 1.34 to edit them? If the editor needs just the RMT file, so does ASAP. Multi-file support would be inconvenient and impossible to implement in players that only pass the byte stream instead of the filename.

     
  • Peter Dell

    Peter Dell - 2024-09-04

    So this is how you take a break from the project ;-) ?

    1. Correct. 1-9 registers raw data without any metadata, see the linked AA comment from dmsc
    2. Correct.
    3. He have not yet digged into what/why RMT does here for the loop. I assume it has to do with that fact that the compress "looks-bckwards" and you'd have to do something like a "key frame" in MP4 to ensure to can restart the decompression a certain point. I tried to contact Vin, but have no reply so far.

    You only edit the RMT file. The LSZZ files are not edited by RMT, they are an output-only compressed version of the POKEY register stream that RMT generates during export. If you can implement the complete RMT => POKEY Registers generation logic of RMT in ASAP, that would of course be the most efficient way.

     
  • Piotr Fusik

    Piotr Fusik - 2024-09-04

    Yeah, that was a long break, wasn't it? ;)

    Could you attach some RMT 1.34 files?
    I don't know what kind of effects are there, but perhaps a 6502 player is possible? (and would make things easy for conversion to SAP and XEX)

     
  • Piotr Fusik

    Piotr Fusik - 2025-12-16
    • status: open --> pending
     
  • Peter Dell

    Peter Dell - 2026-02-25

    Hi Fox,
    I lot has happend since I last posted on this. Since then I effectively took over the RMT 1.3x maintenance and am in the process of understanding how the sound generation and file exports there work. As opposed to when I thought when I posted this, today's XEX output fo RMT 1.34 (that is the VU Player) is based on LZSS but this LZSS is still generated by the emulated 6502 running a special modified version of the RMT Player (Patch 16, by default).
    So my aim for RMT 1.3x is to enable an RMT as XEX export that is "just" a new RMT player routine. Because you also select other parameters (besides the player type) in RMT 1.3x, the RMT file format also needs to be extended to be complete/self-contained.
    You can find my current toughts and proposal here: https://forums.atariage.com/topic/387213-raster-music-tracker-20-technical-details/ Feedback is very welcome.

    Nevertheless, also other (more flexible standard trackers) meanwhile support export as LZSS and longterm we should have a solution for them, too.

     

    Last edit: Peter Dell 2026-02-25

Log in to post a comment.

MongoDB Logo MongoDB