Short: mpega.library clone (libmad) for 68080 Author: Renaud Schweingruber (68080 version), Sigbjørn Skjæret (clone), Underbit Technologies (libmad) Uploader: renaud schweingruber protonmail com (Renaud Schweingruber) Type: util/libs Version: 2.4 (22.10.2026) Requires: 68080 (Apollo Vampire) Architecture: m68k-amigaos >= 3.0 Distribution: Aminet mpega.library 2.4 [080] ======================= A 68080 build of Sigbjørn Skjæret's mpega.library clone (v1.7), which decodes MPEG audio (layers I, II and III) with libmad 0.15.1b. Programs that use mpega.library (players, AmiPlexAmp, ...) work unchanged: just replace the library. What is different ----------------- The 2004 68k binary of the clone uses libmad's fastest but least accurate fixed-point mode. This build uses libmad's full-accuracy mode (64-bit products) and makes it fast on the 68080: - polyphase synthesis window in assembler, keeping only the high longword of each 64-bit MULS.L product; - dct32 compiled to assembler by a dedicated generator, with rounded Q31 multiplies (bit exact with the C code); - long-block IMDCT windowing fused with the overlap-add; - alias reduction in Q31, skipping the all-zero upper lines; - Huffman decoding with BFEXTU straight from the bitstream; - dithered 16-bit output in assembler (bit exact with the C code); - code laid out for the 16 KB instruction cache of the 68080. Measured on a Vampire V4 (68080 at 99 MHz), 254 kbit/s VBR MP3, 44.1 kHz stereo, CPU time in % of real time; quality = signal to error ratio against a floating-point reference decoder (ffmpeg): dithered rounded quality previous 68k binary (040) 25.9 % 23.6 % 49.4 dB (errors up to 124 LSB) this 68080 build 21.2 % 19.6 % 95.8 dB (errors up to 1 LSB) Also tested with 128 kbit/s CBR, 22 kHz mono and 16 kHz MPEG-2 files, and a very loud 191 kbit/s track (102.5 dB). The FPU is not used: on the 68080 the integer unit is faster for this work (measured), and the output keeps full 16-bit accuracy. Installation ------------ Copy mpega.library to LIBS: (keep a copy of the old one), then reboot or run "Avail FLUSH" so that the new one is loaded. "Version mpega.library FULL" shows: mpega.library 2.4 (22.10.2026) [080] mpega.library clone v1.7 by Sigbjørn (CISC) Skjæret, 68080 version by Renaud Schweingruber, using libmad 0.15.1b - Copyright (C) 2000-2004 Underbit Technologies, Inc. The library uses 68020 instructions (64-bit MULS.L, BFEXTU) and is tuned for the 68080. It is not meant for the 68060 (64-bit MULS.L is emulated there). License and source code ----------------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. It is distributed WITHOUT ANY WARRANTY; see the file COPYING for details. libmad - MPEG audio decoder library Copyright (C) 2000-2004 Underbit Technologies, Inc. mpega.library clone Copyright (C) Sigbjørn Skjæret and contributors. 68080 version Copyright (C) 2026 Renaud Schweingruber. Written offer of source code (GPL version 2, section 3b): For at least three years from the date of this release, I will give any third party, on request and for no more than the cost of physically performing the source distribution, a complete machine-readable copy of the corresponding source code of this mpega.library, including the scripts used to build it. Write to: Renaud Schweingruber Credits ------- Robert Leslie / Underbit Technologies for libmad, Sigbjørn Skjæret, Jarmo Laakkonen and Stephan Rupprecht for the mpega.library clone, Stéphane Tavenard for the original mpega.library interface.