# All Roads by Jon Ingold, Release 1, serial 011119, Z-machine V5 # (IF Comp 2001 winner / XYZZY Best Game 2001) # VERIFIED COMPLETE SOLVE: won=True (win text), died=False # # Reproduce with the RNG-pinned replay harness (free, no API): # cd ~/src/zwalker # python3 scripts/replay_solve.py games/zcode/allroads.z5 walkthroughs/allroads_verified_win.txt --seeds 4 # => allroads_verified_win.txt: VERIFIED 36/None at seed 1 | 185 cmds | died=False | won=True # (The "36" is a meaningless Inform global the score reader lands on; the game # is scoreless - SCORE is not even a verb it recognises - so the win is # decided purely by the WIN_TEXT directive below.) # # All Roads is a Venetian assassin story told across a folded timeline: you # wake on the scaffold with a noose around your neck, escape through the # "darkness" (the other direction only you can travel), and live a day that - # on the second pass - turns out to have been braided around itself. The # route follows the game's own sample walkthrough shape: escape the wine # cellar via the dropped key, lose sanctuary at the church, slip the Captain # in the alleys, enlist in the Denizen's army, get betrayed to the Resistance # by Francesca, survive the night cell, then wake in your inn room, learn the # target's name from the note (destroy it in the sink), and walk the palace # leg a second time while the game replays your first visit's commands as # deja-vu echoes. In the wine cellar you finally meet Giuseppe Florantine, # slip your signet ring onto his bound hand, and knock to be let out. # # Ending: the timeline closes back on the opening scaffold - the hooded body # under the noose ("Giuseppe Florantine! For the crime of: THIEVERY!") swings # as your consciousness watches from the crowd beside Francesca and her # father ("another job completed by the usual cycle"), and the game closes # with its true final banner "*** You rest ***", which is the WIN_TEXT. # The intermediate banner "*** You have been hanged ***" is scripted story # text on the winning route, not a death. # # Deterministic, no RNG on route: the story is fully scripted; seeds 1-4 all # replay identically to the same ending (machine-checked). The pinned seed is # kept purely for harness uniformity. # # Keypress prompts: the game reads single keys at its menu, its cut-scene # "[Press any key]" breaks, and its title screen. The title screen accepts # ONLY space or return, which a plain-text command list cannot carry (the # replay loader strips whitespace). Those key events are therefore encoded # as a single U+10020 character (see the odd-looking lines below): the # interpreter truncates key codes to 16 bits, so 0x10020 arrives as 0x20 - # a space - at every read_char prompt. Plain "z" lines serve as keypresses # where any key is accepted, and as waits at line prompts. # # Movement commands are phrased "run " (the Inform library treats # run/go/walk alike) so the replay pathway never classifies them as # direction probes: several legitimate moves here print room descriptions # containing "...is closed." which the walker's blocked-move heuristic # would otherwise roll back (this game hides room changes from the # walker's room-object detector, so text is all it has). # #% WIN_TEXT: \*\*\* You rest \*\*\* # # Generated by direct machine play through the GameWalker pathway (route # debugged scene-by-scene against the game binary, endgame echo pacing # machine-validated); replay-verified by scripts/replay_solve.py. 𐀠 wake up wake up 𐀠 𐀠 i listen run down remove rope examine the clock examine the crowd examine square listen examine darkness jump into the darkness 𐀠 examine dust blow dust x wine bottle x key take key l open wine kick the bottle rub ropes on glass again x ring read note i take key unlock the door run north close hatch lock it i put key through hoop run south take rope throw rope at pigeons run north take key run up run south run northeast x woman talk to woman drink from fountain enter the church talk to the priest i remove ring put ring in alms bowl talk to priest again sit pray stand follow priest talk to captain run examine me cut manacles on dagger talk to captain g g enter the darkness 𐀠 examine the painting x steps i x key drop it run up x florantine's door knock on denizen's door sign book run north sit examine denizen talk to her g examine the candle take it take ring stand run south run south talk to giuseppe examine him hit him talk to him x form run north sign form g run north give form to her talk to her g go close eyes talk to her g take form x it run south run west run down run northwest talk to girl kiss her run down kiss her talk to man g remove ropes open door x light wait 𐀠 talk to captain x bars look through window talk to denizen g g g g g x stars remove manacles z 𐀠 look on bed x woman kiss her talk to woman stand take money talk to her give coin to her talk to her g l take note dress read note open blind read note turn on tap put note in water close tap listen take key run west close door run down follow sign e examine dark go up i x me u z z z z z z x aide kill him i t aide remove ring put ring on aide knock on door l z z 𐀠 z z z 𐀠