Trying to fix bug in sprite cutscene script

Bucket Mouse

Active member
Okay, I've narrowed the problems with my script down to DoHandleObjects.asm, specially the part I altered here. The purpose of dummying out the first four lines is to make the sprites visible during text, and the purpose of the remaining portion is to make them freeze in place.

Code:
;    LDA gameStatusByte
;    AND #%00000001 ;;; this will skip object handling.
;    BEQ dontSkipObjectHandling
;        RTS

;;;; THE ABOVE HAS BEEN COMMENTED OUT TO ADD A SCRIPT FOR PAUSING VISIBLE SPRITES DURING TEXT
    LDA #$01
    CMP spritePause
    BNE dontSkipObjectHandling
    
    LDX #$00
    shutoffloop:
    LDA Object_status,x
    AND #%11010011
    STA Object_status,x
    INX
    CPX #TOTAL_MAX_OBJECTS
    BEQ dontSkipObjectHandling
    JMP shutoffloop
    
    ;;;; END OF ADDED MATERIAL

It's the RTS in line 4 that makes the sprites vanish during text because it skips all of DoHandleObjects. Remove it, and the sprites stay, but you get a delay of several seconds between the time the text disappears and the time the sprite does its next AI. I don't know how to get rid of the delay. I don't know why the delay happens. I can't make a special condition to cut out any part of DoHandleObjects to save time because then the sprites don't draw correctly.

If I can't figure this out then there's no way to make sprite cutscenes. What's the solution here? Any ideas?
 
Top Bottom