Dark Nation
03-16-2005, 12:37 PM
ZC currently plays several types of music formats (.MOD, .IT, .XM, .S3M, .SPC, .MP3, and .OGG). I am wanting to add other formats to it. Specifically, .NSF (8-bit NES music) files. Another nice format to have would be .GBS (GameBoy music) files.
To this end, I've created a stand-alone music player that uses the same audio core that ZC does to allow third parties to work on this, should they wish to do so.
Ideally, the additions would be separate, Allegro-compatible libraries, like the 4 already in use (DUMB, AlSPC, AllegroMP3, and AllegroOGG), that would snap into the main library (music.cpp), which is called by the player (play.cpp). Also, as .NSF (and .GBS) files may contain multiple songs, the music_start() function will need to modified (as you see fit) to allow a desired track to be specified.
Included in the attached zip file are the source code for the player and the main music library. The 5 supporting libraries will have to be downloaded separately from the links below, then compiled and installed in order to get the main project to compile.
Finally, this must be a cross-platform library. No assembly, C only. Also, it must be endian-independant.
One possible starting point would be to use code from FakeNES 0.3.1 (http://sourceforge.net/project/showfiles.php?group_id=39844).
Another possibility is NoSeFart 2.3 (http://sourceforge.net/project/showfiles.php?group_id=66254&package_id=64140), (a cross-platform NSF player).
For GBS files, you could start with the Meridian GBS WinAmp Plugin 0.1b (http://meridian.overclocked.org/files/in_gbs_src.zip).
Preferably, the library you create would be a modification to one of the above suggested libraries (or another open source library available on the Internet) so that it can be updated easily when they are, but this is not a requirement.
Here are the links to the 5 main supporting libraries (if a library is listed twice, download the one for your platform):
Allegro is the main audio (and graphics, etc., but we are only dealing with audio right now) library that the other libraries use.
The two following files are the ones used by Zelda Classic currently:
Allegro for Windows/DOS (http://prdownloads.sourceforge.net/alleg/all4116.zip?download)
Allegro for Linux/Mac OS X (http://prdownloads.sourceforge.net/alleg/allegro-4.1.16.tar.gz?download)
The two following files are, at the time this post was made, the most current versions of the above two files:
Allegro for Windows/DOS (http://prdownloads.sourceforge.net/alleg/all4118.zip?download)
Allegro for Linux/Mac OS X (http://prdownloads.sourceforge.net/alleg/allegro-4.1.18.tar.gz?download)
DUMB is the library that ZC uses for playing .MOD, .IT, .XM, and .S3M files.
DUMB for DOS/Windows (http://prdownloads.sourceforge.net/dumb/dumb-0.9.2-fixed.zip?download)
DUMB for Linux/Mac OS X (http://prdownloads.sourceforge.net/dumb/dumb-0.9.2-fixed.tar.gz?download)
AllegroMP3 handles the .MP3 files:
AllegroMP3 (cross-platform) (http://www.hero6.com/filereviver/almp3.zip)
AllegroOGG deals with the .OGG files (another highly-compressed wave file, like .MP3)
AllegroOGG (cross-platform) (http://www.hero6.com/filereviver/alogg.zip)
AlSPC plays .SPC files
AlSPC (cross-platform) (http://www.armageddongames.net/darknation/alspc_src.zip)
Anyone who submits a library that gets used will be given credit in Zelda Classic. Any and all music formats are welcome, though NSF (especially) and GBS are my main concern at the moment.
Here is the music player that needs to be modified: music.zip (www.armageddongames.net/darknation/music.zip)
To this end, I've created a stand-alone music player that uses the same audio core that ZC does to allow third parties to work on this, should they wish to do so.
Ideally, the additions would be separate, Allegro-compatible libraries, like the 4 already in use (DUMB, AlSPC, AllegroMP3, and AllegroOGG), that would snap into the main library (music.cpp), which is called by the player (play.cpp). Also, as .NSF (and .GBS) files may contain multiple songs, the music_start() function will need to modified (as you see fit) to allow a desired track to be specified.
Included in the attached zip file are the source code for the player and the main music library. The 5 supporting libraries will have to be downloaded separately from the links below, then compiled and installed in order to get the main project to compile.
Finally, this must be a cross-platform library. No assembly, C only. Also, it must be endian-independant.
One possible starting point would be to use code from FakeNES 0.3.1 (http://sourceforge.net/project/showfiles.php?group_id=39844).
Another possibility is NoSeFart 2.3 (http://sourceforge.net/project/showfiles.php?group_id=66254&package_id=64140), (a cross-platform NSF player).
For GBS files, you could start with the Meridian GBS WinAmp Plugin 0.1b (http://meridian.overclocked.org/files/in_gbs_src.zip).
Preferably, the library you create would be a modification to one of the above suggested libraries (or another open source library available on the Internet) so that it can be updated easily when they are, but this is not a requirement.
Here are the links to the 5 main supporting libraries (if a library is listed twice, download the one for your platform):
Allegro is the main audio (and graphics, etc., but we are only dealing with audio right now) library that the other libraries use.
The two following files are the ones used by Zelda Classic currently:
Allegro for Windows/DOS (http://prdownloads.sourceforge.net/alleg/all4116.zip?download)
Allegro for Linux/Mac OS X (http://prdownloads.sourceforge.net/alleg/allegro-4.1.16.tar.gz?download)
The two following files are, at the time this post was made, the most current versions of the above two files:
Allegro for Windows/DOS (http://prdownloads.sourceforge.net/alleg/all4118.zip?download)
Allegro for Linux/Mac OS X (http://prdownloads.sourceforge.net/alleg/allegro-4.1.18.tar.gz?download)
DUMB is the library that ZC uses for playing .MOD, .IT, .XM, and .S3M files.
DUMB for DOS/Windows (http://prdownloads.sourceforge.net/dumb/dumb-0.9.2-fixed.zip?download)
DUMB for Linux/Mac OS X (http://prdownloads.sourceforge.net/dumb/dumb-0.9.2-fixed.tar.gz?download)
AllegroMP3 handles the .MP3 files:
AllegroMP3 (cross-platform) (http://www.hero6.com/filereviver/almp3.zip)
AllegroOGG deals with the .OGG files (another highly-compressed wave file, like .MP3)
AllegroOGG (cross-platform) (http://www.hero6.com/filereviver/alogg.zip)
AlSPC plays .SPC files
AlSPC (cross-platform) (http://www.armageddongames.net/darknation/alspc_src.zip)
Anyone who submits a library that gets used will be given credit in Zelda Classic. Any and all music formats are welcome, though NSF (especially) and GBS are my main concern at the moment.
Here is the music player that needs to be modified: music.zip (www.armageddongames.net/darknation/music.zip)