]> 4ch.mooo.com Git - 16.git/blob - src/lib/dl/ext/libmad/readme
refresh wwww
[16.git] / src / lib / dl / ext / libmad / readme
1 libmad library.
2 Ported to MS-DOS/OpenWatcom by Jonathan Campbell.
3
4
5 Notes:
6
7 - The Sound Blaster MP3 player uses the same codebase as the test.exe
8   executable under hw/sndsb, except that some modes have been removed
9   and the code rewritten to decode and play back MP3 data.
10
11 - If your DOS machine has no sound card, but does have the traditional
12   "PC Speaker", you can use playspkr.exe to play the MP3 through the
13   internal beeper (using the old DPCM trick). However there may be
14   slight audio glitches depending on background processes,
15   interrupts, and disk I/O. Make sure your DOS extender and CPU are
16   fast enough to service interrupts at a high timer tick rate.
17   Playback will also not sound very good if the "PC speaker" is not
18   an actual speaker, such as the piezoelectric ones on laptops.
19
20 - If you have a Gravis Ultrasound, use the playgus.exe MP3 player.
21   The Sound Blaster version does NOT work with SBOS or MEGA-EM despite
22   my best efforts.
23
24 - If you have a LPT parallel port, you can use the LPT DAC version,
25   playlpt.exe. Though playback up to 44.1KHz is supported, it may
26   not be possibly depending on whether or not the parallel port
27   delays I/O for compatability reasons, or any other sources of
28   latency.
29
30 - Experimental: If you have a Covox Sound Master, try playsm.exe.
31   Since I don't actually have a Covox Sound Master, I don't know whether
32   this works on real hardware.
33
34
35
36 TODO LIST:
37  - 16-bit real-mode MP3 decoding. Currently, libmad seems to compile properly
38    only for 32-bit flat protected mode. I got it to "sort of" compile for
39    16-bit large memory model builds, but it doesn't work properly and it seems
40    to cause memory corruption as well.
41
42    Specification for 16-bit real mode: Take libmad, valgrind it under Linux to
43    catch all possible problems, then incorporate the validated code into this
44    source tree. That will be the 32-bit build. Then, take the libmad source
45    code, put it under a separate directory (libmad16), modify it to use
46    14-bit precision and math that favors 16-bit integers (what will fit into
47    real-mode 8086 CPU registers), and incorporate that into /etc/libmad16.
48    Copy over the test programs here and compile them with it, to produce the
49    16-bit real mode builds. Make the makefile for libmad16 so that it only
50    produces binaries for 16-bit real mode builds. If the differences are
51    minimal enough, you could merge the two source trees into one project
52    that can produce a fast high quality decode for 386+ systems, and a faster
53    (less precise) decoder for systems as low as an 8086.
54