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

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


----- Eero Tamminen wrote:
> Hi,
> 
> On maanantai 03 elokuu 2015, Nicolas Pomarède wrote:
> > 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 ?
> 
> 
> Tautology II & Kwiks.pd work now fine.
> 
> 
> Golden Island still gets stuck to DSP check:
> ---------------------------------------------------------------
> CPU=$d41d8a, VBL=5147, FrameCycles=68, HBL=0, LineCycles=68, DSP=$110
> $00d41d8a : 0813 0000                          btst      #0,(a3)                   
> 50.00% (37560001, 150240000, 0, 0)
> > profile addresses 
> # disassembly with profile data: <instructions percentage>% (<sum of 
> instructions>, <sum of cycles>, <sum of i-cache misses>, <sum of d-cache 
> hits>)
> $00d41d8a :             btst      #0,(a3)                   50.00% 
> (37560001, 150240000, 0, 0)
> $00d41d8e :             beq.s     $d41d8a                   50.00% 
> (37559999, 150239996, 0, 0)
> Disassembled 2 (of active 2) CPU addresses.
> > r
>   D0 00000000   D1 00000002   D2 00000010   D3 0000FFFF 
>   D4 00008000   D5 C000003F   D6 00000003   D7 000001E0 
>   A0 00D42BDC   A1 00D42BD8   A2 00D42BDC   A3 FFFFA202 
>   A4 FFFFA205   A5 FFFFA206   A6 0010D4F8   A7 0010D4A4 
> USP  000202B4 ISP  0010D4A4 SFC  00000000 DFC  00000000 
> CACR 00003111 VBR  00000000 CAAR 00000000 MSP  00000000 
> T=00 S=1 M=0 X=0 N=0 Z=1 V=0 C=0 IMASK=6 STP=0
> 00D41D8A 0813 0000                BTST.B #$0000,(A3)
> Next PC: 00d41d8e
> ---------------------------------------------------------------
> 
> It works with (older) OldUAE, but not with latest WinUAE,
> even when using --cpu-exact off.
> 
> 
> 	- Eero
> 

Maybe the btst bset bclr instructions influence the pre-fetch/cache
because of an uninterruptible read-modify-write addressing cycle
for the use of race-condition-free semaphores.



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