mstop4 / FMODGMS

🎶 GML bindings to the FMOD Studio low-level API for GM:S and GMS2. Can be used in Windows, macOS, and Linux games.
https://quadolorgames.itch.io/fmodgms
BSD 2-Clause "Simplified" License
62 stars 18 forks source link

Updating the base FMOD version #32

Open BPzeBanshee opened 1 year ago

BPzeBanshee commented 1 year ago

Not sure how worthwhile it would be to do this, but latest anything generally makes sense if it isn't introducing new regressions. I've done some testing towards this end, and found that of surprise to no expert, simply replacing the fmod.dll won't quite cut it: updating the included FMOD source code and object libraries, followed by recompiling FMODGMS, is necessary.

I ran out of time to do this and submit a pull request myself, but as far as existing supported functions go, the only crucial stumbling blocks I was able to find to this end in Visual Studio was the removal of FMOD_TAGDATATYPE_CDTOC as a category, and changes to the CPU usage function returning a struct with multiple floats covering different parts of the FMOD process.

The former fix seems as easy as using FMOD_TAGDATATYPE_MAX instead to me, but I'm unsure on how best to proceed with the latter given that GameMaker 2022 does not yet support passing anything other than doubles and strings to and from extensions. Any advice and assistance on this front would be appreciated. :)

EDIT: it seems cam900 is several months to a year ahead of me and has already worked on this, see here: https://github.com/cam900/FMODGMS/commit/55eaa67945e0eee5a69e16e7fffe974c328787eb

It may be worthwhile accepting pull request #30 (so we can actually get working builds again under GameMaker 2022.8 now that they've mandated 64-bit support) and then pulling these changes into master for future GameMaker use. :)

BPzeBanshee commented 11 months ago

Okay, I've revisited this and tried some changes on a fork.

I was able to merge cam900's changes okay, but found myself still struggling to compile a working binary for Ubuntu. I could get the included binaries to load but they appear to be matching versions of what's included with master branch (ie. 1.10.0, missing Chan_Is_Playing), so clearly cam900 didn't have any success either. I could get things compiled with alterations to the lines Grix suggested in #25 but those also don't work either.

I then tried updating the FMOD libraries/include code to 2.02.16 in the hopes that updating FMOD might yield a better result, which with some fixes I was able to compile but unfortunately also does not work.

I'm in over my head on this one, and with GameMaker now supporting loop points internally I have little reason to keep banging my head against a wall.