One Loop, Two Worlds

The loop is stored twice — same artwork in both copies, different solidity bits. One bit in Sonic's status decides which copy his feet read.

WHAT SONIC'S FEET SEE

ground angle
$00
counts down through 256
path bit (obRender bit 6)
0 — FRONT
reading chunk $35

THE ENTIRE PATH SYSTEM

btst #6,obRender(a0) ; behind the loop?beq.s .use_as_written ; bit 0 → chunk $35addq.w #1,d1 ; bit 1 → chunk $36

READING THE PICTURE