SCC music in your browser without addons

Página 1/5
| 2 | 3 | 4 | 5

Por niek

Expert (112)

imagem de niek

18-04-2016, 07:31

Hello all,

I've created a new website; msxmusic.

This is hosting some things I put together, which is using the amazing work done by Multimedia Mike. He took the GME (Game Music Emu) and used Emscripten to compile it to Javascript. Emscripten is a LLVM extension created to be able to compile C/C++ code to Javascript with a performance penalty of about 50% compared to native code. He then used the Webaudio API to play the stuff. The result is the possibility to use the GME on a browser on all platforms that support Javascript! The GME has the ability to play KSS files, which means MSX music too. It works fine on an Android phone as well! :) :)

It's not perfect and I have things left to do:
- FMPac music doesn't seem to work. This is correct behaviour it seems; the information about the GME 0.6.0 says it won't support it. However; I am able to play FMPac music using a tool called Audio Overload. This tool is based also on the GME, at least that's what the GME page says. There's a patch available for GME 0.5.2 to support the FMPac chip; the YM2413. However, the JS engine is based on 0.6.0, and I won't be able to apply this patch, the files to be patch are way to different between the versions.
- Also, the music from SD Snatcher is sounding all weird, Audio Overload doesn't have that issue. Does anyone have any tips on this? I did send an email to the creator of the software to find out what he's using.
- A different site for mobile users is coming.
- I only tested with Chrome (on my phone too).
- Songs will loop forever, going to the next one is always manually. This will be fixed.
- I will add some more Konami games.

Hope you like it!

PS. Compiling OpenMSX with Emscripten...?

Entrar ou registrar-se para comentar

Por ARTRAG

Enlighted (6935)

imagem de ARTRAG

18-04-2016, 07:40

Very cool, greetings

Por ren

Paragon (1934)

imagem de ren

18-04-2016, 20:50

That's cool.

Indeed, there seems to be some issues with the emulation. Some other problematic songs are: Nemesis 2 '4st. BGM' and Salamander 'Destroy Them All'. Note that titles <> music seems to be messed up for these games on your site (tested on Firefox).

These issues have been reported a while ago already at the foo_gep repository: https://github.com/kode54/foo_gep/issues/4.
foo_gep is based on https://github.com/kode54/Game_Music_Emu, which seems to be the most up to date version/fork of the library.

I think Audio Overload is only partially based on GME (which would explain why it doesn't reproduce the same issues). From the readme:

Quote:

Emulation core by Richard Bannister

Portions by [...] Shay Green [...]

Por AxelF

Champion (395)

imagem de AxelF

18-04-2016, 20:27

Nice work, maybe a volume slider would be nice...

Por Grauw

Ascended (10772)

imagem de Grauw

18-04-2016, 20:48

Nice, reminds me of the webVGM VGM Player (based on VGMPlay for PC), also compiled with Emscripten.

Por niek

Expert (112)

imagem de niek

18-04-2016, 21:25

@Ren: Agreed, didn't know about the Salamander tune, the problem kicks in later. I also noticed the Salamander song info had issues, fixed. Kingsvalley2 music 10 also has serious issues. Smile

I haven't heard from Richard Bannister yet.

I also noticed there's an Audio Overload SDK, but it doesn't seem to include KSS support. Multiple player engines have been compiled to Javascript and it seems it's not that hard to do it, as long it compiles with LLVM, so I could try to compile some other engine. The question is: is there any c/c++ source player engine code out there that will play it properly?

Por niek

Expert (112)

imagem de niek

18-04-2016, 21:32

Por Grauw

Ascended (10772)

imagem de Grauw

18-04-2016, 21:44

niek wrote:

@Ren: Agreed, didn't know about the Salamander tune, the problem kicks in later. […] The question is: is there any c/c++ source player engine code out there that will play it properly?

VGMPlay for PC includes SCC emulation. See the Destroy them all VGM; if you download the VGM from there you can drop it on the webVGM player.

Also you can look at the KSS-X source code.

Por niek

Expert (112)

imagem de niek

18-04-2016, 22:45

Quote:

Also you can look at the KSS-X source code

So I guess Audio Overload uses this for KSS playback then!

Por ren

Paragon (1934)

imagem de ren

19-04-2016, 19:07

KSS-X is based on MSXplug which is (originally) done by Mitsutaka Okazaki (a.k.a. 'Brezza').
Though the author of KSS-X seems to use his own MSXplug repository / fork. Not sure where he got the source files, as I couldn't find any (pointers) on the (just recently?) defunct official MSXplug website (Digital Sound Antiques).

Digital Sound Antiques can be found on GitHub though: https://github.com/digital-sound-antiques
Only libkss seems to be missing, which can be found in aforementioned KSS-X author's MSXplug repo however.

I played around with KSS playback (on PC/Windows). MSXplug (can be used as XMPlay plugin) seems to be the best allround, but seems to have some issues with PSG emulation. This is clearly noticeable in the Castlevania songs (drums/hats). NEZplug, or GME does a better job here. NEZplug does a bad job on OPLL though (e.g. Xak) + PSG in e.g. Solid Snake OST seems poor (drums) (e.g. Theme of Solid Snake).

So... There's no perfect (C-based) KSS replayer (yet) ?
Still got to try NYYRIKKI's KSS Player for MSX :)

(Or should we move to VGM, @Grauw? :))

Por niek

Expert (112)

imagem de niek

20-04-2016, 00:11

Well, the best thing would be to have all players available in Javascript, so the best engine can be selected per KSS file. Smile The JS GME KSS engine is only 500kB, so it's no problem to have a few!

BTW I updated the site a bit.
- On an Android smartphone things look a lot better (not perfect)
- I wanted to have the MSX boot logo, I discovered that CSS3 has some nice features for that, so now I have a nice logo scrolling up, very similar to the real thing. Smile

Página 1/5
| 2 | 3 | 4 | 5