46:7230a1ed6e8f default tip
Anton Shestakov <av6@dwimlabs.net>, Fri, 03 Dec 2021 09:48:35 +0300
index: update a source code link in the footer to not point to a dead site

previous change 45:22233eb257bf

README.rst

Permissions: -rw-r--r--

Other formats: Feeds:
gme-player.js
=============
What is it? It's a music player in the browser. Or, it's yet another interface
to `Game Music Emu`_ (to be precise, `mpyne's fork`_) compiled with Emscripten.
What exactly does it play?
--------------------------
gme-player.js should support all formats that libgme supports, with the
exception of compressed formats. Compressed formats, such as VGZ, depend on
ZLib and are not supported for now.
Table copied from `Game Music Emu`_'s home page (watch out for broken links):
+---------+-------------------------------------------------------------------+
| `AY`_ | ZX Spectrum, Amstrad CPC |
+---------+-------------------------------------------------------------------+
| `GBS`_ | Nintendo Game Boy |
+---------+-------------------------------------------------------------------+
| `GYM`_ | Sega Genesis, Mega Drive |
+---------+-------------------------------------------------------------------+
| `HES`_ | NEC TurboGrafx-16, PC Engine |
+---------+-------------------------------------------------------------------+
| `KSS`_ | MSX Home Computer, other Z80 systems (doesn't support FM sound) |
+---------+-------------------------------------------------------------------+
| `NSF`_, | Nintendo NES, Famicom (with VRC 6, Namco 106, and FME-7 sound) |
| `NSFE`_ | |
+---------+-------------------------------------------------------------------+
| `SAP`_ | Atari systems using POKEY sound chip |
+---------+-------------------------------------------------------------------+
| `SPC`_ | Super Nintendo, Super Famicom |
+---------+-------------------------------------------------------------------+
| `VGM`_, | Sega Master System, Mark III, Sega Genesis, |
| `VGZ`_ | Mega Drive, BBC Micro |
+---------+-------------------------------------------------------------------+
.. _AY: http://www.worldofspectrum.org/projectay/gdmusic.htm
.. _GBS: http://snesmusic.org/hoot/gbs/
.. _GYM: http://www.zophar.net/musictest.phtml?fmt=GYM
.. _HES: http://www.snesmusic.org/hoot/kingshriek/
.. _KSS: http://home.hccnet.nl/s.v.nimwegen/kss/
.. _NSF: http://akumunsf.good-evil.net/
.. _NSFE: http://slickproductions.org/nsfe.php
.. _SAP: http://asma.atari.org/
.. _SPC: http://snesmusic.org/v2/
.. _VGM: http://www.smspower.org/music/vgm/
.. _VGZ: http://project2612.org/
Also check out `Famicompo mini`_.
Usage
-----
The simplest way to see it in action is:
.. code-block:: sh
cd gme-player.js
make
# drop some game music files: .nsf, .nsfe, .spc, .vgm, etc
# add them to the list in index.html
python3 -m http.server
And then navigate to http://localhost:8000/.
gme-player.js is fully client-side, that's why you need to add files that are
available server-side to index.html.
Hacking
-------
recipe.sh has some tips on how to build Game Music Emu with Emscripten.
License
-------
MIT.
Game Music Emu (and the bundled libgme* files) is LGPL.
TODO
----
Upgrade bundled libgme. 0.6.2 broke many NSFe files, fixed in master, let's
wait for 0.6.3 then.
Support compressed formats (``-DLIBTYPE=STATIC``?).
.. _Game Music Emu: http://blargg.8bitalley.com/libs/audio.html
.. _mpyne's fork: https://bitbucket.org/mpyne/game-music-emu
.. _Famicompo mini: http://midr2.under.jp/