PATCH Solution

STALE SUM

PATCH missing accumulator reset

In-game screenshot of STALE SUM
In-game view
FamilyPATCH Graph0.316 DifficultyMedium Ring02 IDzp44_noreset

Prerequisites

FRAMERXOR Door

Unlocks

Single Key

Patch choices seed=0
Accepted keysRESET8 Editable slots1 Rulenonzero

Walkthrough

The checksum walk and the stored total are both right, but the accumulator was never cleared: it starts full of leftover bytes, so the sum always runs high. Only the marked seed can move. Start the running sum from nothing, then TEST.

The stored total was computed as if the sum began at zero. A nonzero seed shifts the final sum by exactly that seed, so only a cleared accumulator can land on the stored total.

Valid Patch Combos

  • seed=0

Reject Battery

  • RESET9
  • RXSET8
  • QESET8
  • RESET
  • RESET88

Editable Slot Options

  • seed: 0x5A, 0, 0x11, 0x80
Broken Listing
; STALE SUM: a PATCH job. The checksum walks every byte and compares the running
; sum against the stored total. The walk is correct and the total is correct, but
; the accumulator is seeded with leftover bytes from an earlier pass instead of
; being cleared, so the sum runs high by that seed and never matches. Only the
; marked seed (label "seed") is yours to edit; the loop, the stored total, and the
; verdict are frozen.
;
; The real key is RESET8. The stored total already assumes the sum began at zero,
; so any nonzero seed shifts the final sum by exactly that seed. Clear the
; accumulator so the walk starts from nothing.
;
; r0 = 1 on accept; rule: nonzero. SHIPPED seed is 0x5A, so the sum lands 0x5A
; high and the real key is bounced.

        len   r2
        cmp   r2, 6
        jnz   bad

seed:   mov   r3, 0x5A      ; SHIPPED BROKEN: stale seed -> want 0
        mov   r7, 0
loop:   cmp   r7, 6
        jge   done
        ldb   r0, [r7]
        add   r3, r0
        inc   r7
        jmp   loop

done:   cmp   r3, 0xBB      ; stored total of the six bytes, summed from zero
        jnz   bad
        mov   r0, 1
        ret
bad:    mov   r0, 0
        ret