Re: [hatari-devel] Fix DSP's rol/ror instructinos

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Well the sound player I wrote works more like MP2 decoder: streams data in over SSI and plays back over SSI. 030 is not really involved and there are no synchronisation points in the code. Once DMA is started on 030 side it should tick along nicely.

The other thing is that I was never able to get MP2 playback work in any demo with hatari.. Could this be down to my laptop being to slow? (it's i7-3820QM).


On 2 August 2018 at 11:33, Nicolas Pomarède <npomarede@xxxxxxxxxxxx> wrote:
Le 02/08/2018 à 12:25, Mariusz Buras a écrit :
Hi Laurent
It certainly will fix one part of my upcoming demo :)

Sadly there's a number of other DSP defects in hatari:
* long interrupts are incorrectly masked. hatari don't seem to adjust IPL level correctly. My case was where I have SSI SEND and RECEIVE interrupts at the same time. On real machine a long interrupt would block SSI interrupts in SR preventing SEND interrputs if RECEIVE was fired. This is obviously only a problem when you forget
to adjust the SR while developing on hatari and then it doesn't work on Falcon :)
* It seems that jsset/jsclr can't be used to trigger long interrupt. This seems to work on Falcon. There's no mention of that in the 56001 manual though.

SSI seems to be totally out of sync for me. I can share a piece of code which plays sound perfectly fine on falcon while in hatari it sounds really bad.

I can't tell for the other DSP part, laurent is more used to this, but for the music not playing good when using dsp, it's a case already known for some module players where the 68030 player code send/receive data to the dsp without handshake.

Some instructions have a wrong number of cycles in 68030 emulation (due to complex prefetch/queuing/caching in the cpu) and in such case it means the DSP will not run the correct number of instructions relative to how much instructions were done at the same time in the 68030, thus creating bad sound..

Unfortunately, this is very complex to fix, as there's no documentation for the 68020/30 inner work :(

Nicolas





Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/