Re: [hatari-devel] DSP check freeze in Tautology II startup

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


Le 08/07/2015 18:18, Nicolas Pomarède a écrit :

small update on tautology II : although games works when cache is off, I
found that the bug is not directly related to the instruction cache
(which is good news), but to some undocumented prefetching in 68020/30
branch instructions that will fill 1 or 2 long words too much at the
moment in the instruction cache (which is not good news).

This would not cause a problem in normal case, except the music player
is using self modified code *without clearing* the instruction cache
(this is bad ...), and in that specific case, this will trigger the rest
of the problems in Tautology II.

I discussed this with Tony, some changes were made to fix part of this,
but more tests are still needed to ensure this doesn't break other
prefetching part.

Hopefully, this can be fixed when I'm back from holidays.

Hi

thanks to Toni's work on WinUAE, the 68020/30's pipeline is now much improved and will stop prefetching when one of the opcode in the queue will trigger a branch (rts, jmp, bsr, bra, ...). This means the cpu will not always prefetch 3 words in advance, and the extra word that was prefetched in Tautology II is not loaded anymore, which allows the self modified code to work.

This should fix other games/demos that uses the same dsp replay routine for NTK4 modules.

Eero, do you confirm it works for you too ?

Nicolas




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