PATCH Solution

BINARY MIRROR

PATCH ARC scratch mirror repair

In-game screenshot of BINARY MIRROR
In-game view
FamilyPATCH Graph0.820 DifficultyHard Ring04 IDzp18_binary_mirror

Prerequisites

CHECKSUM

Unlocks

WINDOW SCAN

Patch choices seedfix=0x3A phasefix=xor spinfix=3 stepfix=0x17 basefix=6 readfix=r0 biasfix=0x29 guardfix=jnz
Accepted keysBINARY5 Editable slots8 Rulenonzero

Walkthrough

The validator writes a transformed trace to scratch and then checks it backward. Repair the staged transform, reverse index, reader register, and final guard without opening the near misses.

Follow the data through both passes. The second pass is only meaningful if it reads the mirrored scratch byte into the same register that the compare path consumes.

Valid Patch Combos

  • seedfix=0x3A phasefix=xor spinfix=3 stepfix=0x17 basefix=6 readfix=r0 biasfix=0x29 guardfix=jnz

Reject Battery

  • BINARY
  • BINARY5X
  • AINARY5
  • BINARYX
  • binary5
  • 5YRANIB

Editable Slot Options

  • seedfix: 0x63, 0x3A, 0x7E, 0x43
  • phasefix: add, xor, sub
  • spinfix: 4, 3, 1
  • stepfix: 0x3A, 0x17, 0x0F, 0x4C
  • basefix: 7, 6, 5, 8
  • readfix: r1, r0, r2, r3
  • biasfix: 0x1A, 0x29, 0x43, 0x3A
  • guardfix: jz, jnz, jge, jl
Broken Listing
; BINARY MIRROR: PATCH job. The checker stages a transformed copy into
; scratch, then reads it back in reverse with a position mask. Several
; marked constants drifted during the rebuild.

        len   r2
        cmp   r2, 7
        jnz   bad

seedfix: mov   r4, 0x63
        mov   r7, 0
p1loop: cmp   r7, 7
        jge   p2start
        ldb   r0, [r7]
phasefix: add   r0, 0x55
        xor   r0, r4
spinfix: ror   r0, 4
        stb   [r7], r0
stepfix: add   r4, 0x3A
        inc   r7
        jmp   p1loop

p2start: mov   r7, 0
p2loop: cmp   r7, 7
        jge   ok
basefix: mov   r6, 7
        sub   r6, r7
readfix: lds   r1, [r6]
        mov   r3, r7
        mul   r3, 17
biasfix: add   r3, 0x1A
        xor   r0, r3

        cmp   r7, 0
        jz    t0
        cmp   r7, 1
        jz    t1
        cmp   r7, 2
        jz    t2
        cmp   r7, 3
        jz    t3
        cmp   r7, 4
        jz    t4
        cmp   r7, 5
        jz    t5
        mov   r1, 0x2A      ; position 6
        jmp   chk
t0:     mov   r1, 0xBD
        jmp   chk
t1:     mov   r1, 0x0E
        jmp   chk
t2:     mov   r1, 0x79
        jmp   chk
t3:     mov   r1, 0x31
        jmp   chk
t4:     mov   r1, 0x03
        jmp   chk
t5:     mov   r1, 0xD7
        jmp   chk
chk:    cmp   r0, r1
guardfix: jz    bad
        inc   r7
        jmp   p2loop

ok:     mov   r0, 1
        ret
bad:    mov   r0, 0
        ret