> > OG did a fix for Skyarmy, but not indicating bits were adjusted to get Sky > > Army working. > > It was this bit. > > diff bad.asm good.asm > 4716c4716 > < 1F65: DD CB 9E 46 bit 0,(ix-$62) > --- > > 1F65: DD CB 1E 46 bit 0,(ix+$1e) > > I don't know what method he used to find it, but it's a single bit error which is not > the kind of problem romcmp finds.
Oh, the usual. Find which sprite is the helicopter that won't go left (3c, always the same whether it goes left or right actually). Find where the coordinates are computed and written, which made me find where it was initialized and the left/right decision was done. See that two bits where different between the two directions, including ix+1e that's set to either 00 and 01. Track what is done with these bits, see nothing significant. Then look at the movement computation, and see that test decides whether to go left or right. See it's a one-bit difference, and go *duh*.
OG.
PS: Also checked it wasn't a mirror, but no, it's in the middle of ram. Unless there's kinky mapping, but I doubt it.
|