Re: [hatari-devel] Reeking rumber analysis |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
Am Mon, 9 Sep 2013 10:00:55 +0200
schrieb Thomas Huth <th.huth@xxxxxx>:
> Am Sun, 08 Sep 2013 23:33:01 +0200
> schrieb Laurent Sallafranque <laurent.sallafranque@xxxxxxx>:
>
> > Hi,
> >
> > I've given a closer look at reeking rumber :
> [...]
> > $0707a0 : 2811 move.l (a1),d4
> > $0707a2 : 2612 move.l (a2),d3
> > $0707a4 : b803 cmp.b d3,d4
> > >
> > $0707a6 : 6706 beq.s $707ae
> > $0707a8 : 6202 bhi.s $707ac
> > $0707aa : 5103 subq.b #8,d3
> > $0707ac : 5803 addq.b #4,d3
> > $0707ae : e19b rol.l #8,d3
> > $0707b0 : e19c rol.l #8,d4
> > $0707b2 : b803 cmp.b d3,d4
> > $0707b4 : 6706 beq.s $707bc
> > >
> > $0707b6 : 6202 bhi.s $707ba
> > $0707b8 : 5103 subq.b #8,d3
> > $0707ba : 5803 addq.b #4,d3
> > $0707bc : e19b rol.l #8,d3
> > $0707be : e19c rol.l #8,d4
> > $0707c0 : b803 cmp.b d3,d4
> > $0707c2 : 6706 beq.s $707ca
> > $0707c4 : 6202 bhi.s $707c8
> > >
> > $0707c6 : 5103 subq.b #8,d3
> > $0707c8 : 5803 addq.b #4,d3
> > $0707ca : 4843 swap d3
> > $0707cc : b699 cmp.l (a1)+,d3
> > $0707ce : 6702 beq.s $707d2
> > $0707d0 : 7a01 moveq #1,d5
> > $0707d2 : 24c3 move.l d3,(a2)+
> > $0707d4 : 51ce ffca dbra d6,$707a0
> > >
> > $0707d8 : 4a85 tst.l d5
> > <------- Here is the the test that never goes throw with hatari
> > $0707da : 6680 bne.s $7075c
> > $0707dc : 4cdf 07ff movem.l (sp)+,d0-d7/a0-a2
> > $0707e0 : 4e75 rts
> >
> >
> > At least, the game runs under hatari except for this infinite loop that
> > never finishs because of this d5 register.
> >
> > May this gives some ideas to somebody.
>
> As far as I can see, d5 is never set back to 0 in this loop ... that
> could mean that it is supposed to be changed by an interrupt handler
> instead. Have you checked the usual suspects? VBL? HBL? Timer-B?
Ah, never mind, I missed the "moveq #0,d5" at $07075c ... so the
question is rather why the "cmp.l (a1)+,d3" never results in 0 ...
maybe we need to do some masking for the palette register values to get
rid of some unused bits in the registers?
Thomas