Re: A82: Galaxian bug... solved?


[Prev][Next][Index][Thread]

Re: A82: Galaxian bug... solved?




In a message dated 98-04-15 21:58:31 EDT, you write:

> >>Display_Screen:
>  >
>  >Instead of call Display_Screen, do call CR_GRBCopy
>  >
>  >-- Barubary
>  >
>     Yes, I could, but I think Patrick used that routine for a very 
>  specific reason. I'll have to email him to be sure. If the use of the 
>  routine isn't neccessary then I could use ROM_CALL(DISP_GRAPH) or 
>  CR_GRBCopy and save myself around 100 bytes. But I do think the routine 
>  is essential to the game otherwise I'm sure Patrick would have used it. 
>  When I tried DISP_GRAPH before the game seemed to run fine, but when the 
>  ship gets hit an extremely wierd crash occured. I'll email PD and 
>  investigate further. 
>      The real question for the CrASH people is why does this routine work 
>  in ASH and not CRASH? I could have told myself to write the routine out 
>  with ROM_CALL(DISP_GRAPH). Another question I have is why did the bug 
>  not used to occur when I played Orzunoid on CrASH v1.0? I have a feeling 
>  if someone tried Galaxian on CrASH v1.0 the bug wouldn't happen. 
>      Sam

First of all, CrASH 1.0 was never released to the public :-).  The first
release was 1.1.
Second, DISP_GRAPH changes most, if not all, of the registers.  Try this:

Display_Screen:
push hl
push de
push bc
push ix             ;if you use it
push af             ;prolly not needed
ROM_CALL(DISP_GRAPH)
pop af
pop ix
pop bc
pop de
pop hl
ret

then you won't even have to change the "call Display_Screen"'s!  I imagine,
though, that this is not the problem, and I would be interested in hearing
Patrick Davidson's reply.
Thirdly, the problem probably does occur in Ash, you just haven't figured out
how to exploit it :-).  Or, some memory addresses used by CrASH only could be
messed up.
I don't imagine DISP_GRAPH will slow the game down terribly, if it works

~Adamman