Repository navigation
Own backend, JSX, names and arrays of texts: step 8, part 3 - #51
Merged
Merged
Conversation
JSX buffers are made texts of their own; a player's name and colour are read from where the game keeps them; arrays of texts and texts in records keep a block a cell. Made texts are read and written through the current player, and known texts up to 256 bytes are written, not copied. Step 8 takes 46 of 46; the made-texts probe is now 0.151/0.714/0.418 ms a frame against eudplib's 1.391/1.694/0.840. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BwPs2Ya2X9rB9TYHijfoom
Played in Remastered on 2026-10-22: the game deals the players' colours afresh each game on the probe map, and both builds print each name in the colour dealt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BwPs2Ya2X9rB9TYHijfoom
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.
On top of #50 (triggers stacked), which is on top of #49. Step 8 is done: 46 of 46.
Part 3 (
compiler/backend/texts.ts, on part 2's run time)buildText/built) is a made text of its own. It's put together from its start or continued from its end. A buffer printed alone is shown as it is.PNamereads it. For a player known when built, its length is one condition a byte, and the rest is copied a dword at a time.Made texts through the current player (to beat eudplib on every frame):
cpfunctions do. This needs no emitter change: a read at EPD 13 and a Set Deaths for player 13 already work this way.own-made-textsframe 2own-made-textsframe 3own-made-textsframe 4own-jsx-textsframe 2 (JSX, colour, meter)own-jsx-textsframe 3 (names and colours)own-jsx-textsframe 4 (text arrays, join, records)Size trade-off: the known texts' functions take room. The
own-made-textspayload is 1.45 MB (1.33 MB with #50 alone). Copying every known text instead would be 1.16 MB, with frames 0.204 / 0.811 / 0.430 ms, still faster than eudplib everywhere.Checked
--writeflipped exactly the 13 refused step 8 rows.probes/own-jsx-texts.tsxprints the same lines and colour codes both ways. eudplib only adds\rpadding, which draws nothing.probes/own-*.tsprint the same lines with the free dwords filled with ones.tests/emitter.test.ts: JSX, a name and colour from game memory, text arrays and records. The walker now takes player field 13 as the current player. Full suite: 1278 pass.Remastered:
own-step8-known.scx,own-step8-made.scx,own-step8-jsx.scxandown-step8-made-filled.scx(the stacking check) are in Maps/TrigScript, withown-step8-answers.txt.🤖 Generated with Claude Code
https://claude.ai/code/session_01BwPs2Ya2X9rB9TYHijfoom