# The Quest — restoration notes

Source: `LOCAL_VERSION.zip`, supplied locally. The files identify adidas’s 2010
The Quest: A Live Graphic Novel and Perfect Fools implementation.

## Recovered

All five English episodes, 111 panel rectangles, original backgrounds, poster
art, fonts, narration and music. The AMF3 `.bin` files contain 31 fps camera
positions, rotations, active panels and three channels of video/audio events.
These samples are decoded unchanged into JSON. Episode five uses the original
configuration’s Spain version; the Netherlands alternative remains in the archive.

Embedded Flash video streams are extracted with JPEXS 26.4 and converted to
H.264 MP4s. Original JPEG/PNG and MP3 files are copied without creative changes.
The five draggable scenes also have all-keyframe H.264 encodes for responsive
seeking. No AI-generated art, remote scripts, analytics or Flash runtime is used.

## Native implementation

CSS perspective transforms follow the recovered camera path; the surrounding
stage scales to the viewport. This approximates Flash’s 3D projection rather
than reproducing its renderer pixel for pixel. Pointer dragging pauses the guided
camera and audio. Release coasts with momentum, then eases for one second to the
nearest original panel center. Playback resumes automatically from that panel’s
video cue, holding the camera at its center until the recorded path catches up.
Music and narration are repositioned to the selected timeline point. The gesture
uses Pointer Events and viewport-normalized movement on desktop and touch screens.
Reduced-motion mode removes the coast and animated snap. Explicit navigation,
closing the story, or hiding the tab cancels pending motion and resumption. Panel navigation, seeking,
subtitles, sound and episode selection use native controls.

Interactive scenes pause the guided story and open in a focused viewer. Continue
returns to the next panel. On phones, long questions and football descriptions
move below the original artwork so the controls and lettering remain readable.
Keyboard ranges and buttons provide equivalents to the original mouse gestures.
Closing a scene cancels its listeners, animation loop and media. Hidden tabs pause
scene playback and timers; Resume is explicit on return.

## Restored interactions and source rules

`games.json` has a controller configuration for all 26 interactive panels.
Its source fields identify the original SWFs. The decompiled component classes,
`xml/global/pages.xml`, `xml/global/style.css`, and English episode dictionaries
supply behaviour, positions, typography and text.

- **Pienaar football:** introductory playback stops at frame 64; drag motion uses
  the original 0.2 frames per source pixel, with a 0.2-second eased response.
  Reaching frame 94 starts the finishing animation. Frame 112 awards star 1 only
  after user interaction. Closing or skipping before completion gives no star.
- **Panoramas:** Pienaar’s Zidane turn, Gerrard’s landscape and Zidane scene, and
  the finale paintings use the original 0.2 frame/pixel drag mapping and roughly
  one-second eased response. Coordinates are normalized for screen size.
  Gerrard’s original text appears between frames 50 and 100.
- **Football collection:** all eleven original transparent ball illustrations,
  1970–2010, use the original symbol order, background and English descriptions.
  Drag direction wraps through the collection; changes animate over 0.3 seconds
  with the original 0.1-second lockout. Previous/Next provides a keyboard path.
- **Slideshows:** recovered bitmap order (not filesystem order). Messi’s five
  slides take seven seconds with half-second wipes; completing them awards star
  2. Gerrard’s four slides take seven seconds with a flash/desaturation effect.
  Villa’s four slides take five seconds with reversed wipes. Hidden time does
  not count, and an early exit never unlocks the Messi bonus.
- **Radio:** original bitmap, knob and Digital-7 font. Initial frequency 102.7 FM,
  range 101.3–103.9 FM, original introductory sweep and ±135-degree dial.
  The recovered interview is at 101.3; static and speech crossfade across 1 MHz.
  Sound follows the shared mute control and requires a browser-allowed gesture.
- **Questions:** all five original questionnaires (Gerrard 7/14, Villa 3/16,
  finale 14) retain their English copy, answer choices and reveal cues. Choices
  save locally; they do not submit votes or imply global results.

## Achievements and unavailable services

The three bonus entries retain their original YouTube IDs. Discoveries persist
in localStorage, with a memory fallback when storage is blocked. Reopening a
scene does not duplicate stars. The bonus links are explicit external links;
no autoplaying third-party embed is inserted and availability is not guaranteed.

**Small repair to the original:** Villa’s `Frame05.as` reveals its bonus button at
frame 71 and dispatches `ACHIEVEMENT_ACTIVATE` on click, but never dispatches
`AchievementEvent.TOGGLE`. The native version saves star 3 when that revealed
button is selected. This repairs persistence without inventing a new challenge.

Facebook match-up, voting, sharing and charity services, plus external bonus
videos and the trailer, are outside the supplied local archive. Their original
art is retained and affected scenes disclose that limitation. Some SWF vector
compositing and transitions are approximated with CSS over the recovered video;
this is not a pixel-identical Flash emulator. No replacement film or fabricated
vote outcome is supplied.

## Validation

`npm test` compares all five camera timelines to the original AMF3, checks all
111 panel images and 93 primary H.264 movies, and tests normalized drag behaviour,
radio tuning, slideshow ordering, achievement gating/persistence, storage failure,
and asset coverage for every interactive scene.

This is an archival personal project. Original artwork, trademarks and audio
remain the property of their respective owners.

Browser smoke checks: desktop and 390px portrait; football drag and its star,
Messi slideshow completion, all eleven collection assets and drag/Next controls,
radio drag tuning, the four panorama controllers, all five questionnaires,
Villa bonus discovery, persisted stars after reload, Continue, and close cleanup.
No browser errors were reported during the final check.

Desktop enhancement: mouse-wheel and trackpad gestures step forward/backward
one panel, using the same eased focus and automatic media resumption as drag.
Small wheel deltas accumulate; inertial tails are grouped into a single gesture
to avoid skipping multiple panels. Browser zoom gestures remain native. This
wheel navigation is a modern addition, not a claim about the original Flash site.

Navigation verification: desktop drag and wheel in both directions, 390px portrait
drag, paused music/narration during motion, resumed audio/video after settling,
and cancellation when returning home. Momentum is frame-rate independent.

Chapter availability: all five recovered chapters are always available from the
header's Chapters menu. No synthetic clock or invented matchup result is needed.
Finishing the last interactive panel now shows chapter completion rather than
rewinding to the opening. The next-chapter action advances through Pienaar, Messi,
Gerrard, Villa and the finale; the finale returns to selection. All four forward
transitions and final return were smoke-tested in the browser, along with the
chapter picker at 390px portrait width.
