Monday, December 11, 2023

Re: fix audio in emulators/xnp2

ping

On 2023/11/23 11:02:26 +0100, Omar Polo <op@omarpolo.com> wrote:
> This appens to be a 'fallout' from sdl2_mixer 2.0.2, at least
> accordingly to the AUR comment I found when I was searching.
> See 0b100100 comment https://aur.archlinux.org/packages/xnp2
>
> The diff is the one linked in the comments in AUR, it makes audio works
> for me in Touhou 1 Highly Responsive To Prayers and 5 Mystical Square.
>
> Upstream seems dead and I have wip a port for NP2Kai that works, but it
> could still be worthwile to fix this in the meantime.

Index: Makefile
===================================================================
RCS file: /home/cvs/ports/emulators/xnp2/Makefile,v
diff -u -p -r1.18 Makefile
--- Makefile 21 Sep 2023 13:10:27 -0000 1.18
+++ Makefile 21 Nov 2023 18:26:14 -0000
@@ -2,7 +2,7 @@ COMMENT = PC-9801 emulator

DISTNAME = xnp2-0.86
EPOCH = 0
-REVISION = 5
+REVISION = 6
CATEGORIES = emulators

HOMEPAGE = https://www.nonakap.org/np2/
Index: patches/patch-x11_soundmng_c
===================================================================
RCS file: /home/cvs/ports/emulators/xnp2/patches/patch-x11_soundmng_c,v
diff -u -p -r1.3 patch-x11_soundmng_c
--- patches/patch-x11_soundmng_c 11 Mar 2022 18:59:43 -0000 1.3
+++ patches/patch-x11_soundmng_c 21 Nov 2023 18:24:59 -0000
@@ -1,7 +1,9 @@
-disable asm on i386, PIE uses registers used by asm code.
+- disable asm on i386, PIE uses registers used by asm code.
+- fix audio

---- x11/soundmng.c.orig Wed Mar 9 02:25:50 2016
-+++ x11/soundmng.c Sat Dec 31 06:21:29 2016
+Index: x11/soundmng.c
+--- x11/soundmng.c.orig
++++ x11/soundmng.c
@@ -401,7 +401,7 @@ soundmng_setreverse(BOOL reverse)
} else {
fnmix = satuation_s16x;
@@ -20,3 +22,24 @@ disable asm on i386, PIE uses registers
void PARTSCALL
_saturation_s16(SINT16 *dst, const SINT32 *src, UINT size)
{
+@@ -1179,8 +1179,9 @@ sdlaudio_callback(void *userdata, unsigned char *strea
+ SNDBUF_FILLED_QUEUE_REMOVE_HEAD();
+ sndbuf_unlock();
+
+- SDL_MixAudio(stream,
++ SDL_MixAudioFormat(stream,
+ sndbuf->buf + (sndbuf->size - sndbuf->remain),
++ AUDIO_S16SYS,
+ sndbuf->remain, SDL_MIX_MAXVOLUME);
+ stream += sndbuf->remain;
+ len -= sndbuf->remain;
+@@ -1198,7 +1199,8 @@ sdlaudio_callback(void *userdata, unsigned char *strea
+ sndbuf_unlock();
+ }
+
+- SDL_MixAudio(stream, sndbuf->buf + (sndbuf->size - sndbuf->remain),
++ SDL_MixAudioFormat(stream, sndbuf->buf + (sndbuf->size - sndbuf->remain),
++ AUDIO_S16SYS,
+ len, SDL_MIX_MAXVOLUME);
+ sndbuf->remain -= len;
+

No comments:

Post a Comment