Commit Graph
7 Commits
Author SHA1 Message Date
Coen Rampen 9d800bd7c4 AGOS: Fix compiler warning 2025-02-07 16:15:38 +01:00
Coen Rampen debe30b25e AUDIO: Add full support for type 1 SMF
Type 1 SMF files consist of multiple tracks that are to be played simultaneously
in parallel. Support for this was previously implemented by merging these tracks
into one single track, then treating the result as a regular type 0 SMF file.

This commit adds full support for type 1 files. The parallel tracks are loaded
as subtracks of the parent track and played simultaneously in real time. This
allows for support of MIDI formats with parallel subtracks that do not use the
SMF format (Dark Seed floppy version) or that jump to offsets within each
parallel subtrack (Origin MIDI).
2025-02-07 14:10:52 +01:00
Eugene Sandulenko 0d02f81f94 AGOS: Improved debug output 2024-05-28 14:57:58 +02:00
Eugene Sandulenko d0ab4251c5 AGOS: Added more debug output to music player 2024-05-28 14:47:18 +02:00
Coen Rampen f41cc33dff AGOS: Fix MIDI event noop flag not cleared
When the noop flag was set on a MIDI event by the AGOS Simon 1 Windows or GMF
parsers, it would not be cleared when parsing the next event, leading to all
subsequent MIDI events being ignored.
Fixed this by setting the noop flag to false when it is not applicable to a
MIDI event.
2023-01-14 17:14:51 +01:00
Coen Rampen 97745050c2 AGOS: Add option for Simon 1 DOS tempos to parsers
The DOS version of Simon 1 has different music tempos compared to the Windows
version. This commit adds the option to both the DOS and Windows MIDI parsers
to use either the DOS or Windows tempos.
2022-05-09 17:19:43 +02:00
Coen Rampen 1f0e905160 AGOS: Add MIDI parsers for GMF and Windows
This commit adds MIDI parser subclasses for the Simon 1 GMF format and for the
SMF variant used by the Windows versions of Simon 1 and 2.

The GMF format was handled by the SMF parser, which can now be removed from
that class. It also fixes the tempos not matching the DOS interpreter.

The Simon Windows SMF variant was handled in the AGOS midi class. Moving it to
a separate parser allows for some cleaner code in that class. It now also
corrects the tempos to match those of the DOS interpreter.
2022-05-09 17:19:41 +02:00