Re: SDL audio issue with hivelytracker (porting attempt)

From: Robert Clausecker <fuz_at_fuz.su>
Date: Tue, 15 Mar 2022 12:37:22 UTC
Hi Emanuel,

This is a common issue I had with multiple ports (the latest being
emulators/fceux).  The fragment size must be patched to be a power of 2
and the buffer for the fragments must be resized to be at least as large
as the fragment size (iirc).  This might be the reason why you get a
signal.

The fragment size is set in the SDL_AudioSpec structure member samples
passed to SDL_OpenAudio(). 

Try to find this call and patch it.

Yours,
Robert Clausecker

Am Tue, Mar 15, 2022 at 12:49:08PM +0100 schrieb Emanuel Haupt:
> I've been trying to port the hivelytracker to FreeBSD. After a lot of
> patching I was finally able to start it with:
> 
> SDL_AUDIODRIVER=disk
> 
> with dsp (default) I would always get:
> 
> Fragment size must be a power of two
> 
> when
> 
> SDL_OpenAudio(...)
> 
> was called.
> 
> I did some further digging and found some useful references in:
> 
> https://cgit.freebsd.org/ports/tree/audio/faudio/files/patch-src_FAudio__platform__sdl2.c
> 
> With this patch I was able to get the player to launch without the above
> error:
> 
> https://github.com/ehaupt/ports-wip/blob/master/ports/audio/hivelytracker/files/patch-replay.c
> 
> The player now starts:
> 
> I can click on 'Load Mod', load a sample mod but as soon as I get 'Play
> Song' I get:
> 
> Abort trap (core dumped)
> 
> I've been trying to get some sense by running it with truss but haven't
> been very successful so far.
> 
> The work in progress port can be found here:
> https://github.com/ehaupt/ports-wip/tree/master/ports/audio/hivelytracker
> 
> The port still needs some TLC (hardcoded paths, etc...). I'll fix that
> before adding the port.
> 
> Could someone with SDL audio experience please have a look? I'd
> appreciate the help.
> 
> Emanuel
> 
> 
> [1] https://github.com/pete-gordon/hivelytracker
> 

-- 
()  ascii ribbon campaign - for an 8-bit clean world 
/\  - against html email  - against proprietary attachments