Repository navigation
Own backend: the players' input carried by the map itself (step 12) - #58
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01En4SHqafb1QFJ4xgbUkAe5
…art 1 Keys, clicks, the mouse, sync(), select(), local.selected and underMouse() in a map of our own, with no chatEvent and no MSQC: for each human a ring of hidden carrier units (made at the first frame in transit, given to Player 12, the owner byte put back), a send a Select of the next carrier and a targeted Move to a point that is the value, read back from the carrier's order target on every computer by a receive pass before the programs' turns; a send pass after the last run (Graph.after) queues what this computer's player did and puts their selection back. A state of key and button bits sent when it changes and paid out a frame at a time, the mouse as a point on a ring of its own, a sync as a header and a value. Unit walks pass the carrier type over. The ledger's step 12: 21 of 26 rows taken; the 5 chat rows are part 2. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01En4SHqafb1QFJ4xgbUkAe5
The send pass watches the text ring's byte (0x640B58); when it moves, the thirteen text lines are scanned for this player's name prefix, the line's text copied into cells, the two bytes after the colon swapped (chatEvent's mark) and the text matched against the patterns in order: bytes, digits kept to what a point carries, a word or a unit's name by hash (the names' hashes sorted in cells, searched by halves). The first fit goes as a chat message of the ring (the pattern's number, then its values, all or none); on arrival the pattern's flag is up for a frame and its values are cells, so chatted() and on.chat are cell reads. The packet's queue-room check now covers the whole message. Step 12: 26 of 26 ledger rows taken; harness test; the lifted-game probe equal to eudplib's chatEvent+MSQC on every typed line. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01En4SHqafb1QFJ4xgbUkAe5
…12 played in Remastered Remastered's key table drops a held key for one frame when it begins to repeat (a hold of F7 gave a second press after 17 frames in play). The send pass keeps a bit up through one frame it reads down when it was up the two frames before, so a release goes one frame late and the gap is passed over. The plan records the play: every other line of the sheet as expected, typed lines included. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01En4SHqafb1QFJ4xgbUkAe5
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01En4SHqafb1QFJ4xgbUkAe5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Step 12 of the way off eudplib: the players' input carried by the map itself, in place of MSQC and chatEvent. Ledger: 26 of 26 rows taken. Played in Remastered (two recordings, 2026-10-23), every line of the sheet as expected.
Part 1 — keys, clicks, the mouse,
sync(),local.selected,underMouse(). What a map can carry to every computer is a game command. The carrier is a unit, as MSQC's, but the send is a Select of the next of a ring of six hidden carriers a human and a targeted Move whose point is the value, read back from the carrier's order target on every computer. A receive pass before the programs' turns and a send pass after them (a newGraph.afterblock in the emitter and layout). Keys and buttons go as a state sent when it changes and paid out a frame at a time, so a held key is held for exactly as long and a one-frame tap is a press; the mouse on a ring of its own;sync()makes the trip in two frames (six through MSQC in the same lifted run). Unit walks pass the carrier type over.Part 2 — typed lines. Read where typed: the send pass watches the text ring's byte (0x640B58), scans the thirteen lines for the player's name prefix, copies the text into cells, marks the line as chatEvent does (two bytes swapped after the colon; the line reads the same), and matches the patterns in order — text byte for byte, digits kept to what a point carries, a word or a unit's name by hash (the 455 names as a sorted table in cells, searched by halves). The first fit goes as a chat message: the pattern's number, then its values, all or none.
chatted()andon.chatare cell reads.Found in play: Remastered's key table drops a held key for one frame when it begins to repeat (MSQC's grace hid it). The send pass keeps a bit up through one frame it reads down when it was up the two frames before; a release goes one frame late, a tap stays a tap. Re-tested.
Also: an emitter fault found on the way (a sum of bit-slices of one read with a negative constant folds wrongly) is sidestepped in the decode and listed in the plan's Open list, with carrier respawn and the passes' weight.
Tests: harness tests playing the game's side of the channel (9), the ledger, the lifted-game probe
probes/own-input.tsboth ways.🤖 Generated with Claude Code
https://claude.ai/code/session_01En4SHqafb1QFJ4xgbUkAe5