Re: [hatari-devel] no more sound in falcon ? |
[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]
Le 31/12/2015 15:03, Douglas Little a écrit :
From what I can understand so far, and what I've seen in tests, there is an underlying problem which will foil attempts at fixing the cycle accuracy of the Falcon CPU. I believe the CPU/core is reporting divergent elapsed-cycles information to the DSP and to the rest of the devices (particularly MFP). Or some functional equivalent - duplicate and divergent calculations of elapsed time. This is what my tests are saying to me. If somebody can figure out how/why that is happening and fix that, then it will be worth spending time on cycle accuracy. Trying to fix the cycle sums before solving this will probably be quite frustrating, at least in terms of making demos etc. work and perform properly. :-/ If I can find some time I'll try to look at how that stuff actually works inside Hatari. All I can say for now is that the DSP and MFP receive divergent time information, however good or bad that information happens to be in absolute terms.
I would say that MFP receives the same "number of cycles" than the CPU used per instruction. But from my changes affecting wait states for IO registers, I see that the DSP receives less cycles than what it should really receive (long standing bug), and still it works "better" than if I really count wait states (at least there's sound in your demo, but this can have more subbtle wrong impacts than just breaking sound)
So my conclusion would be : cycles are not correct yet in Hatari with 68030, but this is partially compensanted (by luck :) ) by a wrong count of CPU cycles (wait states not counted) that still allows the DSP to work (even if it's often faster than a real DSP).
In short : it's quite a mess :) Fixing 68030 cycles is the 1st required step to a correct emulation of DSP cycles. Once CPU cycles are correct, everything else should fall much better into place.
Nicolas
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |