View Issue Details

IDProjectCategoryView StatusLast Update
0001415OpenMPTlibopenmptpublic2021-02-16 09:49
Reportermanx Assigned Tomanx  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product VersionOpenMPT 1.30.00.* (current testing) 
Target VersionOpenMPT 1.30 / libopenmpt 0.6 (goals)Fixed in VersionOpenMPT 1.30 / libopenmpt 0.6 (goals) 
Summary0001415: use modern fork of liballegro 4.2
Description

Stock allegro 4.2 has several compatibility bugs, in particular:

  1. interrupt handling
  2. proper support for modern GCC
  3. broken cross-compiling support in the build system
  4. broken 8bit Sound Blaster output
  5. low timer precision
  6. non-spec-compliant Sound Blaster support

(1) is fixed in the DJGPP package, (1), and (3) are fixed in https://github.com/msikma/allegro-4.2.2-xc, (1), (3), and (4) are fixed in https://github.com/pixelsyntax/allegro-4.2.2-xc.

(2) (as well as (1),(3), (4)) is fixed in r8468.zip">https://lib.openmpt.org/files/libopenmpt/contrib/allegro/allegro-4.2.3.1-hg.7+r8468.zip.

(5) and (6) are not fixed anywhere yet.

r8468.zip">https://lib.openmpt.org/files/libopenmpt/contrib/allegro/allegro-4.2.3.1-hg.7+r8468.zip has all known fixes integrated.

TagsNo tags attached.
Has the bug occurred in previous versions?
Tested code revision (in case you know it)

Activities

manx

manx

2021-02-14 10:16

administrator   ~0004632

hg-allegro-v1.patch (4,489 bytes)   
Index: Makefile
===================================================================
--- Makefile	(revision 14151)
+++ Makefile	(working copy)
@@ -122,7 +122,10 @@
 #
 
 
+.PHONY: all
+all:
 
+
 INFO       = @echo
 SILENT     = @
 VERYSILENT = @
@@ -1429,9 +1432,7 @@
 	mkdir -p                                     bin/dist-dos/libopenmpt-$(DIST_LIBOPENMPT_VERSION)
 	mkdir -p                                     bin/dist-dos/libopenmpt-$(DIST_LIBOPENMPT_VERSION)/LICENSES
 	svn export ./LICENSE                         bin/dist-dos/libopenmpt-$(DIST_LIBOPENMPT_VERSION)/LICENSE.TXT          --native-eol CRLF
-	cd bin/dist-dos && unzip ../../build/externals/all422s.zip allegro/readme.txt
-	mv bin/dist-dos/allegro/readme.txt           bin/dist-dos/libopenmpt-$(DIST_LIBOPENMPT_VERSION)/LICENSES/ALLEGRO.TXT
-	rmdir bin/dist-dos/allegro
+	cp include/allegro42/readme.txt              bin/dist-dos/libopenmpt-$(DIST_LIBOPENMPT_VERSION)/LICENSES/ALLEGRO.TXT
 	cp include/cwsdpmi/bin/cwsdpmi.doc           bin/dist-dos/libopenmpt-$(DIST_LIBOPENMPT_VERSION)/LICENSES/CWSDPMI.TXT
 ifeq ($(ALLOW_LGPL),1)
 	svn export ./include/mpg123/COPYING          bin/dist-dos/libopenmpt-$(DIST_LIBOPENMPT_VERSION)/LICENSES/MPG123.TXT   --native-eol CRLF
Index: build/download_externals.sh
===================================================================
--- build/download_externals.sh	(revision 14151)
+++ build/download_externals.sh	(working copy)
@@ -82,12 +82,9 @@
 
 
 
-download_and_unpack_zip "allegro42" "https://djgpp.mirror.garr.it/current/v2tk/allegro/all422ar2.zip" "build/externals/all422ar2.zip" "."
-download                            "https://djgpp.mirror.garr.it/current/v2tk/allegro/all422s.zip" "build/externals/all422s.zip"
+download_and_unpack_zip "allegro42" "https://lib.openmpt.org/files/libopenmpt/contrib/allegro/allegro-4.2.3.1-hg.7+r8468.zip" "build/externals/allegro-4.2.3.1-hg.7+r8468.zip" "."
 download_and_unpack_zip "cwsdpmi"   "https://djgpp.mirror.garr.it/current/v2misc/csdpmi7b.zip" "build/externals/csdpmi7b.zip" "."
 download                            "https://djgpp.mirror.garr.it/current/v2misc/csdpmi7s.zip" "build/externals/csdpmi7s.zip"
-#download_and_unpack_zip "allegro42" "https://lib.openmpt.org/files/libopenmpt/contrib/djgpp/allegro/all422ar2.zip" "build/externals/all422ar2.zip" "."
-#download                            "https://lib.openmpt.org/files/libopenmpt/contrib/djgpp/allegro/all422s.zip" "build/externals/all422s.zip"
 #download_and_unpack_zip "cwsdpmi"   "https://lib.openmpt.org/files/libopenmpt/contrib/djgpp/cwsdpmi/csdpmi7b.zip" "build/externals/csdpmi7b.zip" "."
 #download                            "https://lib.openmpt.org/files/libopenmpt/contrib/djgpp/cwsdpmi/csdpmi7s.zip" "build/externals/csdpmi7s.zip"
 
Index: build/make/config-djgpp.mk
===================================================================
--- build/make/config-djgpp.mk	(revision 14151)
+++ build/make/config-djgpp.mk	(working copy)
@@ -18,12 +18,6 @@
 LDLIBS   += -lm
 ARFLAGS  := rcs
 
-ifeq ($(BUNDLED_ALLEGRO42),1)
-CPPFLAGS_ALLEGRO42 := -Iinclude/allegro42/include -DALLEGRO_HAVE_STDINT_H -DLONG_LONG="long long"
-LDFLAGS_ALLEGRO42 := 
-LDLIBS_ALLEGRO42 := include/allegro42/lib/liballeg.a
-endif
-
 include build/make/warnings-gcc.mk
 
 EXESUFFIX=.exe
@@ -69,3 +63,18 @@
 NO_SNDFILE=1
 NO_FLAC=1
 
+ifeq ($(BUNDLED_ALLEGRO42),1)
+
+CPPFLAGS_ALLEGRO42 := -Iinclude/allegro42/include -DALLEGRO_HAVE_STDINT_H -DLONG_LONG="long long"
+LDFLAGS_ALLEGRO42 := 
+LDLIBS_ALLEGRO42 := include/allegro42/lib/djgpp/liballeg.a
+
+include/allegro42/lib/djgpp/liballeg.a:
+	+cd include/allegro42 && ./xmake.sh clean
+	+cd include/allegro42 && ./xmake.sh lib
+
+bin/openmpt123$(EXESUFFIX): include/allegro42/lib/djgpp/liballeg.a
+
+MISC_OUTPUTS += include/allegro42/lib/djgpp/liballeg.a
+
+endif
Index: libopenmpt/dox/changelog.md
===================================================================
--- libopenmpt/dox/changelog.md	(revision 14151)
+++ libopenmpt/dox/changelog.md	(working copy)
@@ -22,6 +22,8 @@
  *  [**Change**] `Makefile` `CONFIG=emscripten` now supports
     `EMSCRIPTEN_TARGET=all` which provides WebAssembly as well as fallback to
     JavaScript in a single build.
+ *  [**Change**] openmpt123: DOS builds now use the Mercury fork of
+    `liballegro 4.2` for improved hardware compatibility.
 
  *  [**Regression**] `Makefile` `CONFIG=emscripten` does not support
     `EMSCRIPTEN_TARGET=asmjs` or `EMSCRIPTEN_TARGET=asmjs128m` any more because
hg-allegro-v1.patch (4,489 bytes)   
manx

manx

2021-02-16 09:49

administrator   ~0004635

r14159 r14160 0.6.0--pre.6

Issue History

Date Modified Username Field Change
2021-02-14 10:15 manx New Issue
2021-02-14 10:15 manx Status new => assigned
2021-02-14 10:15 manx Assigned To => manx
2021-02-14 10:16 manx Note Added: 0004632
2021-02-14 10:16 manx File Added: hg-allegro-v1.patch
2021-02-16 09:49 manx Status assigned => resolved
2021-02-16 09:49 manx Resolution open => fixed
2021-02-16 09:49 manx Fixed in Version => OpenMPT 1.30 / libopenmpt 0.6 (goals)
2021-02-16 09:49 manx Note Added: 0004635