summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatti Niemenmaa2016-07-09 20:58:26 +0300
committerMatti Niemenmaa2016-07-09 20:58:26 +0300
commitbae366f07148ad7f91efbc0573538dcd6de9a1ad (patch)
treed77af2d4b65e88a157da73c0067175416f13ed56
parent990640b5a10a97f6fdf0dec61036ccbeba0e8eb2 (diff)
downloadaur-bae366f07148ad7f91efbc0573538dcd6de9a1ad.tar.gz
Very hackily patch some zero division issues
I have absolutely no idea what the meaning of this value is or why it is sometimes initialized to zero here, but doing this prevents some zero division errors and thus makes some files play seemingly correctly.
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD9
-rw-r--r--zero-div.patch20
3 files changed, 29 insertions, 4 deletions
diff --git a/.SRCINFO b/.SRCINFO
index c4187d67d2b2..24655a7cacb2 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = mdxmini-git
pkgdesc = Library and command line player for Sharp X68000 MDX music files
pkgver = r19.eda5bca
- pkgrel = 3
+ pkgrel = 4
url = https://github.com/weimingtom/mdxplayer/tree/master/jni/mdxmini
arch = i686
arch = x86_64
@@ -11,10 +11,12 @@ pkgbase = mdxmini-git
source = buffer-size.patch
source = makefiles.patch
source = integer-overflow.patch
+ source = zero-div.patch
sha256sums = SKIP
sha256sums = 4f8ec91487736c9ad864f54c615b491c406464573469ed59b1d4f6be77cf2812
sha256sums = 8711dd394c9b99e351026a8e88583d61142cab29a344434338b9589022a64582
sha256sums = e6210879c1418b30ed6645675822a572edae1b223cbca9fdf30b3d398c787a4c
+ sha256sums = bcc4f85ace781ad6298b81f90dc691f5aca627611d387dfc6c350a3145c1807a
pkgname = mdxmini-git
depends = glibc
diff --git a/PKGBUILD b/PKGBUILD
index 2c62fa8d2d36..250b6b171f1a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,7 +1,7 @@
pkgbase=mdxmini-git
pkgname=(mdxmini-git mdxplay-git)
pkgver=r19.eda5bca
-pkgrel=3
+pkgrel=4
pkgdesc='Library and command line player for Sharp X68000 MDX music files'
arch=(i686 x86_64)
# BouKiCHi's original repo seems to be gone so use this random, most up to
@@ -12,11 +12,13 @@ makedepends=(git)
source=("$pkgbase"::'git+https://github.com/weimingtom/mdxplayer.git'
buffer-size.patch
makefiles.patch
- integer-overflow.patch)
+ integer-overflow.patch
+ zero-div.patch)
sha256sums=('SKIP'
'4f8ec91487736c9ad864f54c615b491c406464573469ed59b1d4f6be77cf2812'
'8711dd394c9b99e351026a8e88583d61142cab29a344434338b9589022a64582'
- 'e6210879c1418b30ed6645675822a572edae1b223cbca9fdf30b3d398c787a4c')
+ 'e6210879c1418b30ed6645675822a572edae1b223cbca9fdf30b3d398c787a4c'
+ 'bcc4f85ace781ad6298b81f90dc691f5aca627611d387dfc6c350a3145c1807a')
pkgver() {
cd "$srcdir/$pkgbase"
@@ -31,6 +33,7 @@ prepare() {
patch -p1 -i "$srcdir"/makefiles.patch
patch -p1 -i "$srcdir"/buffer-size.patch
patch -p0 -i "$srcdir"/integer-overflow.patch
+ patch -p0 -i "$srcdir"/zero-div.patch
}
build() {
diff --git a/zero-div.patch b/zero-div.patch
new file mode 100644
index 000000000000..096966841441
--- /dev/null
+++ b/zero-div.patch
@@ -0,0 +1,20 @@
+diff --git jni/mdxmini/src/mdxmml_ym2151.c jni/mdxmini/src/mdxmml_ym2151.c
+index 4594762..cc9ca7c 100755
+--- jni/mdxmini/src/mdxmml_ym2151.c
++++ jni/mdxmini/src/mdxmml_ym2151.c
+@@ -1041,6 +1041,7 @@ set_plfo( int track, int v1, int v2, int v3, int v4, int v5, songdata *data )
+ if ( v1 > 4 ) d*=256;
+ /*fprintf(stderr,"%d %d %d %d\n", track, v1, t, d);fflush(stderr);*/
+ mdx->track[track].p_lfo_form = v1;
++ if (t < 2) t = 2; /* HACK to prevent zero division, no idea what's correct */
+ mdx->track[track].p_lfo_clock = t;
+ mdx->track[track].p_lfo_depth = d;
+ mdx->track[track].p_lfo_flag = FLAG_TRUE;
+@@ -1092,6 +1093,7 @@ set_alfo( int track, int v1, int v2, int v3, int v4, int v5, songdata *data )
+ d = d-0x10000;
+ }
+ mdx->track[track].a_lfo_form = v1;
++ if (t < 2) t = 2; /* HACK to prevent zero division, no idea what's correct */
+ mdx->track[track].a_lfo_clock = t;
+ mdx->track[track].a_lfo_depth = d;
+ mdx->track[track].a_lfo_flag = FLAG_TRUE;