-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add BWSB General Digital Music (GDM) module loader. #57
base: master
Are you sure you want to change the base?
Conversation
I converted this so that it applies and builds/works with SDL_sound |
The conversion of the loader itself looks fine to me. The only thing "wrong" I noticed is it looks like their CMakeLists.txt and Makefile.os2 have the rest of the loaders in alphabetical order... :) This loader has been pretty thoroughly fuzzed and I think I'm done tweaking it, so I'll go ahead and mark it ready for review as well. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This work OK for me.
Based on patch by Alice Rowan (Lachesis) - see: Konstanty/libmodplug#57
Applied this to SDL_mixer, SDL_sound, and to my libmodplug fork. |
Based on patch by Alice Rowan (Lachesis) - see: Konstanty/libmodplug#57
Based on patch by Alice Rowan (Lachesis) - see: Konstanty/libmodplug#57
Based on patch by Alice Rowan (Lachesis) - see: Konstanty/libmodplug#57
Based on patch by Alice Rowan (Lachesis) - see: Konstanty/libmodplug#57
Is there any chance that this gets in ? |
Yes, this is a great addition, however will need a version update - trying to get all the fixes in first. |
This patch adds a loader for the GDM module format, which was the internal module format of Bells, Whistles, and Sound Boards. Due to the usage of BWSB as the module library of MegaZeux from 1996 through 2004, hundreds of GDM modules exist, many without their corresponding original MOD/S3M/etc files. When MegaZeux switched to libmodplug in late 2004, for some reason that I'm sure made sense, the devs at the time wrote a GDM→S3M converter instead of a GDM loader for libmodplug. So, from the MegaZeux project, here's a brand new GDM loader 17 years late. :-)
While libopenmpt, libxmp, and MikMod all have very good support for GDM, some notable projects such as SDL_mixer and VLC use libmodplug, which doesn't support GDM without this patch. Full disclosure, while I implemented this loader almost entirely off of MenTaLguY's GDM.TXT document, some of my knowledge of specific quirks of the format comes from having checked 2GDM/BWSB and working with other GDM loaders in the past. The main places I used this knowledge (16-bit samples hack and unsupported sample flags; quirks in effects conversion) I commented, and I'm not sure there's a reasonable alternative way of implementing these sections.
Test modules:
I'm going to go ahead and mark this as a draft since I'm still testing it.