BUGS CHANGELOG
==============

v29.09 — HUNTER SPRITE CLEANUP
-------------------------------
- Removed the follower-only eye-line overlay that made the chasing spider look malformed.
- Reused the exact normal-spider draw routine for the hunter.
- Matched the hunter's brightness and center-dot dwell to regular spiders to prevent emulator bloom.
- Kept the hunter's chasing logic and audio-only warning unchanged.
- Added a build check requiring the hunter to share the normal spider sprite with no extra visual overlay.

v29.08 — RECOVERY / EMULATOR ROLLBACK
--------------------------------------
- Reverted the unstable v29.07 border and scene beam-batching changes.
- Restored the stable per-object zero-reference drawing path.
- Draws border and score on every frame; no persistence-dependent interlacing.
- Keeps one complete cactus shape at every level and body length.
- Restores complete special-food and pickup artwork at every body length.
- Prevents crawl audio from muting special-food ambience channels.
- Uses independent full-period X/Y placement streams to reduce visible layout patterns.
- Retains safe hazard spawn distance and grace-period protection.
- Adds regression checks forbidding the reverted drawing experiments.

v29.05 — STABILITY SWEEP
-------------------------
- Rebuilt and independently exercised the HUD, score, acceleration, body-render, queue, sound, and placement paths.
- Confirmed SCORE and HIGH share one row and the normal text width is restored.
- Confirmed each regular food advances the speed curve from 10 down to the floor of 4.
- Confirmed the body renderer remains capped at 9 shapes and 38 visible line strokes.
- Fixed reverse-then-valid queued input so the valid second turn applies immediately.
- Fixed same-direction-then-valid queued input so a held/repeated direction cannot delay a corner.
- Fixed the food-growth edge case that could duplicate the old tail coordinate.
- Replaced the state-dependent additive RNG with a full-period 5x+1 byte generator.
- Made each placement retry consume three RNG states, covering all 256 candidate seeds rather than a 128-state half-cycle.
- Added exhaustive RNG-period, placement-cycle, queue-fallback, and growth-tail regression checks.

v29.04 — HUD, ACCELERATION & VECTOR BUDGET
-------------------------------------------
- Moved game-over SCORE and HIGH onto one row with a narrower temporary font and a deliberate gap.
- Restored the normal text width immediately after the game-over HUD is drawn.
- Replaced the live ten-character SCORE label with the four cached score digits to reduce per-frame text load.
- Accelerated the caterpillar after every regular food instead of only at later level boundaries.
- Reached the existing maximum speed after six regular foods and retained the speed clamp.
- Removed level-driven speed changes so the player receives immediate feedback from each pickup.
- Added three body display-detail levels: stride 2 through length 18, stride 3 through length 26, and stride 4 thereafter.
- Kept every stored body coordinate active for collision and steering while reducing redundant visible boxes.
- Reduced the maximum body render from 16 shapes / 76 line strokes to 9 shapes / 38 line strokes.
- Limited decorative feet to the first dense-detail body box and retained a true-cell square tail tip.
- Simplified special-food animation and pickup bursts while the medium/long body LOD is active.
- Kept the hunter free of any diamond, ring, badge, or flashing overlay.

v29.03 — CATERPILLAR POLISH & BALANCE
----------------------------------------
- Reworked the body renderer to start at segment 1 directly behind the head.
- Added tiny feet to alternating full boxes, with a hard four-segment foot budget.
- Added a centered clipped-corner taper and small square tip over the final two body cells.
- Capped the maximum visible body-shape count at 16.
- Shortened crawl to complete two-frame movement cues so top speed does not create a continuous retrigger drone.
- Kept crawl below reward peak volume while preserving its isolated tone/noise voice.
- Staggered weeds to levels 2/4/6/8 and added spiders only at levels 5/9.
- Slowed early hunter pacing and raised the hunter's advanced minimum timer from 6 to 8 frames.
- Added a 30-frame live-play spider grace period whenever a new spider is introduced.
- Kept opening movement speed through level 2, reaching maximum speed at level 8.
- Scaled BUG SPRAY from 130 frames at level 1 to 102 frames at level 15.
- Added a cached two-digit level banner during celebrations and a control key on the title screen.
- Let the restart release lock clear during the death animation for faster deliberate restarts.

v29.02 — HUNTER VISUAL-CUE CORRECTION
--------------------------------------
- Removed the diamond/ring overlay from the chasing spider completely.
- Removed the timer-driven hunter brightness flash.
- The hunter now remains visually steady and is distinguished only by its small eyes and normal steady brightness difference.
- Kept the pre-jump chirp as an audio-only warning.
- Added an automated build check that fails if a hunter diamond overlay or timer-based visual flash is reintroduced.

v29.01 — CRAWL & BOX-BODY PATCH
---------------------------------
- Crawl sound now plays on every committed movement instead of alternating silent moves.
- Existing crawl sound may retrigger itself at high speed without interrupting food, special, warning, or crash audio.
- Crawl temporarily overrides special-food ambience, which resumes automatically afterward.
- Revoiced crawl as a louder four-frame channel-C tone/noise scrape with two alternating pitches.
- Replaced the thin line-and-dot tail with a one-pass chain of wide 4x4 outline boxes.
- Draws every other stored body cell so adjacent boxes cover the path without doubling the vector workload.
- Added build checks for body-box centering, crawl mixer isolation, and minimum crawl volume.

v29.00 — INSECT EDITION
-----------------------

Iteration 1: correctness and fairness
- Paused spider movement during level-up celebrations.
- Replaced the rollover-prone food total with a three-step level-progress counter.
- Made crawl and hunter-warning audio respect the final frame of higher-priority effects.
- Preserved immediate same-frame event sound dispatch.
- Added strict 8 KB ROM and RAM-map build checks.

Iteration 2: sound and ROM optimization
- Replaced repeated emitted PSG-writing routines with compact Sound_Bytes data tables.
- Added shared timer-to-frame dispatch for food, special, crash, crawl, and warning effects.
- Reduced ambient PSG writes to phase changes.
- Cached score and high-score strings.
- Recovered enough ROM space for the gameplay and art additions while staying at 8 KB.

Iteration 3: vector rendering
- Added grouped compound drawing for food, special food, spiders, hunter details, and effects.
- Added the original one-pass connected, beaded body renderer (superseded by v29.01 box segments).
- Preserved the snake-coordinate X pointer around the BIOS line routine.
- Compressed the BUGS title logo into vector data.

Iteration 4: controls and collision
- Added a two-entry direction queue.
- Added self-collision while correctly allowing the departing tail cell on non-growth moves.
- Added a SELF game-over message.
- Kept the original movement grid and collision center.

Iteration 5: progression and enemies
- Starts with two spiders and two weeds.
- Adds weeds each level until six are active.
- Adds spiders on later odd levels until four are active.
- Places each newly activated hazard safely at activation time.
- Makes the hunter visually distinct and telegraphs its jump.
- Continues difficulty through level 15 with timer, speed, multiplier, and special-life changes.

Iteration 6: rewards and presentation
- Replaced the abstract snake head with a four-direction insect head: shell, eyes, mandibles, and antennae.
- Rendered the body as a segmented caterpillar.
- Expanded the score to four digits and added a session high score.
- Added BUG SPRAY as the special-food power-up.
- Added a blinking power-expiration indicator and clearer hunter feedback.

Deferred intentionally
----------------------
- A circular snake-body buffer was not added. The current 31-segment limit and optimized renderer do not justify the extra wrapped-rendering and collision risk without hardware profiling.
