[hatari-devel] DSP emulation and sound

Thomas Huth huth at users.berlios.de
Mon Mar 23 12:37:02 CET 2009


On Mon, 23 Mar 2009 11:06:32 +0100
LAURENT SALLAFRANQUE <LAURENT.SALLAFRANQUE at ARKEA.COM> wrote:

> I've send yesterday the following mail to the dev list.
> I transfer it to you in case you didn't notice it.

I normally read every mail on the list, it just takes some time to
reply... ;-)

[...]
> I've written a bad hack to simulate a SSI event every 32767
> instructions. It works well and many more programs are running. But
> that's not the good way to do this and I would prefer the real SSI
> emulation.

Unfortunately, I never really worked with the interfaces in the Falcon
to the DSP yet... can you recommend some good documentation which
explains this?

> Would you be interrested in my patch anyway, just to see what I
> tested ? (no need to publish it).

Sure, that might help to understand the basics.

> Here is the mail I sent to the list yesterday.
[...] 
> I think the last big bunch of code not yet emulated to emulate a good 
> falcon (and reach hatari V2.0 level ;) is the sound matrix and DSP
> SSI part.
> 
> I'd like to discuss this with all of you before doing anything. For
> me, there are 2 things to do:
> - Add a sound.c file into the falcon directory

Right, but don't call it sound.c since there is already a file with
that name in the main directory.

Since the Falcon sound subsystem mainly consists of a crossbar switch /
sound matrix, maybe it could be named sndCrossbar.c or sndMatrix.c or
something similar.

By the way, in the Aranym sources, there is already a file called
audio_crossbar.cpp ... Patrice, is this already usable to a certain
extent or just some skeleton code?

> - Add the SSI emulation into the DSP
> 
> I can try to emulate the SSI part into the DSP, but there's the other 
> part (sound.c)
> 
> In this sound.c, we must:
> - connect the yamaha sound, the DMA, the STe sound, the DSP and the
> jack in and out.
> - ADC and DAC are not necessary ?
> - take care of some timers,
> - take care of the data size (8, 16 or 24 bits),
> - transfer datas from 1 or more sources to 1 or more dest
> 
> I know some of you are good in sound emulation and timers, I think we 
> should have a look at this to do it well.

Basic DMA sound emulation is already done in dmaSnd.c ... I think it
should be possible to extend this to work together with the crossbar
code later.

> Remark: the jack out could be played into SDL out sound. For the Jack 
> in, we can code this later.

As far as I know, the SDL library does not support sound recording. So
for sound input, we would require some other way to get it ... is there
a portable library which provides this?

 Thomas



More information about the hatari-devel mailing list