A NeoForge addon which adds Unicode-aware terminal cells, input, synchronisation, rendering, ROM utilities and printed pages to CC: Tweaked.
Phase 5's implementation is complete: Lua UTF-8 terminal writes produce one cell per printable grapheme (combining marks attach to the previous cell), which is synchronised, persisted and drawn through Minecraft's resource-pack-aware font fallback chain. Computer/turtle GUIs, pocket items, lectern pocket terminals, and both monitor renderers share one Unicode overlay. Committed keyboard/IME text and Unicode clipboard content reach CraftOS as their original UTF-8 byte sequence.
require("cc.unicode") provides UTF-8 display width, truncation, splitting, wrapping and fixed-width helpers through a
controlled ROM overlay. Printers retain CC:T's legacy printout component and add a versioned sparse Unicode component,
which survives page/book crafting and renders in the printout GUI, hand and item frames. Warm Unicode terminals reuse
bounded revision/layout and glyph-metric caches while Minecraft remains responsible for its resource-aware glyph atlas.
Unicode page titles are preserved with the same 32-code-point safety limit.
The ROM overlay replaces CraftOS window's byte-indexed line buffer with a cell-indexed one, so advanced-computer
multishell rows neither split a UTF-8 sequence at the right edge nor stop after a small number of multibyte characters.
It also replaces the BIOS write() word wrapper and line editor's byte-indexed cursor/scroll calculations, allowing
Unicode output and input to use the same visible row width as ASCII while preserving the UTF-8 byte string returned by
read().
When rows are finally sent through term.blit, byte-length colour strings map each grapheme's first-byte colour to
its single display cell. The Java boundary also preserves a valid UTF-8 prefix when an external redirect supplies a
truncated final sequence. ASCII, legacy graphic bytes, keyboard shortcuts, and CC:T's wire/NBT/rendering paths retain
their original behaviour.
The addon deliberately targets the exact versions listed in COMPATIBILITY.md. See PLAN.md for scope and milestones, PERFORMANCE.md for cache limits and profiling, and UPSTREAM_PROPOSAL.md for the evaluated CC:T extension API.