liballeg / allegro5

The official Allegro 5 git repository. Pull requests welcome!
https://liballeg.org
Other
1.89k stars 284 forks source link

Allegro 5.2.3 no longer plays module music #846

Closed fatcerberus closed 7 years ago

fatcerberus commented 7 years ago

I just updated to Allegro 5.2.3 through NuGet, now .it modules that previously worked fine in miniSphere fail to load. Did something go wrong in the recent DUMB upgrade/refactoring?

fatcerberus commented 7 years ago

Verified; rolling back to 5.2.2.1 the offending .it modules do load successfully again. So this is a regression in 5.2.3.

SimonN commented 7 years ago

What exact DUMB version are you using, according to the defines in dumb.h (ideally) or package management?

If it's 0.9.3: Sadly, there are several 0.9.3 out there. The 0.9.3 on Sourceforge, and kode54's fork that broke API, yet reported 0.9.3 for a while. In this case: Where did you install DUMB from, or what Linux package do you have?

If it's 1.0 according to dumb.h: The A5 code dosen't support this because it had no stable API.

DUMB 2.0 is 2 weeks old, and everything before had no stable API or didn't report proper versions in the header. <_<; The push to 2.0 seemed smartest to restore stability.

(I'm responsible for the A5-DUMB-interop. During testing, I've built A5 against both the Sourceforge 0.9.3 and against 2.0. I hope that both work.)

elias-pschernig commented 7 years ago

The NuGet version uses this I believe: https://www.nuget.org/packages/AllegroDeps/1.6.0

It has 0.9.3 dumb inside. Also:

define DUMB_YEAR 2005

define DUMB_MONTH 8

define DUMB_DAY 7

SimonN commented 7 years ago

Yep, that could either be the Sourceforge DUMB 0.9.3 or an earlier fork version with a 1.0-like API and forgotten header constants.

Ideally, @SiegeLord updates AllegroDeps with DUMB 2.0.

But it still makes me worry that I broke backwards compat -- the .it file played in 5.2.2 and broke in 5.2.3 with the same DUMB version. Sadly I have little time for experiments this week -- will report if I find anything afterwards.

SiegeLord commented 7 years ago

Can reproduce, will take a look at it tonight.

fatcerberus commented 7 years ago

Where did you install DUMB from, or what Linux package do you have?

This is the Windows NuGet release, the dependencies are included in the package. That's the only reason the breakage was surprising; believe me I followed the whole DUMB 0.9.3->2.0 upgrade saga when it was going down :)

SiegeLord commented 7 years ago

It's due to the added libm dependency in the FindDUMB.cmake (no such thing as libm in MSVC land). Nuget packages are just compiled without DUMB. Doesn't feel worth a new release, but I'll hotpatch this for the Nuget packages as soon as I get a good solution.

SiegeLord commented 7 years ago

I've submitted a fixed Nuget package. As soon as they index it, it should become available.

fatcerberus commented 7 years ago

Thanks @SiegeLord, after wrestling with NuGet's braindead package updater for a bit, the updated package plays tracker modules again. :)

SiegeLord commented 7 years ago

Perfect, thanks for checking!