promotional bannermobile promotional banner

OpenComputers II: Modern

Fully functional RISC-V virtual computers that boot real Linux, with a high-level Lua API and native networking. A maintained, heavily improved fork of OpenComputers II.
Back to Files

OC2R v0.1.1-beta.3 for Minecraft 1.21.1 (NeoForge)

File nameoc2r-1.21.1-neoforge-0.1.1-beta.3+0e7585c.jar
Uploader
loki5512344loki5512344
Uploaded
Sep 13, 2026
Downloads
21
Size
26.8 MB
Mod Loaders
NeoForge
File ID
8872392
Type
B
Beta
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:opencomputers-ii-modern-1657848:8872392"

Learn more about Curse Maven

What's new

Added

  • Terminal: non-destructive column change — DECSCPP (CSI Pn $ |) selects 80 or 132 columns via a new resizeWidth primitive that copies existing contents into the surviving columns instead of clearing: screen content, scroll margins, cursor position and tab stops are preserved (new columns are default-initialized, matching xterm's resize). Private-marker forms (?/> prefix) are ignored, as xterm does. DECCOLM (mode 3) remains the destructive reset (#38)
  • Terminal: per-instance color palette — OSC 4 (query/set an indexed color) and OSC 104 (reset one or all indexed colors to default) are implemented; "computed dim" derives SGR 2 (dim) from the palette instead of a fixed table (#31)
  • Terminal: CSI cursor-positioning coverage completed — CBT/CHT (backward/forward tabulation), CNL/CPL (cursor down/up + CR), VPR/HPA/HPR (vertical/horizontal position, absolute/relative), RCP and CSI ?u (XTRESTORE, save/restore private mode state), REP (repeat preceding char) (#24)
  • Terminal: XT_RAW_PASSTHROUGH mode (CSI ?7777h/l) — an in-band byte-capture debugger that renders every received byte as a visible glyph without interpreting it, for diagnosing what a guest program actually sends
  • Terminal: DECSTR (CSI ! p, soft terminal reset) — resets mode tables, rendition, parser state, charsets, scroll margins and the saved cursor to power-on defaults without RIS's destructive geometry reset (no screen clear, no width change, no palette reset) (#35)
  • CI: lintRatchet task (count-based ratchet for Checkstyle/PMD, baseline 0) and SpotBugs baseline file, so lint regressions fail the build going forward
  • CI: GameTest scaffolding (gameTest Gradle task, smoke tests for registration/recipes/device-bus, JUnit report publishing) so in-game integration behavior gets covered going forward (#41)

Changed

  • Terminal: OSC/DCS/APC string-sequence termination (ST, BEL, CAN/SUB abort, ESC followed by a non-\) is now handled uniformly by a single TerminalOutput.handleStringByte state machine instead of divergent per-manager logic, mirroring xterm's dispatch and closing a stuck-DCS/APC griefer vector
  • Terminal: cursor save/restore (DECSC/DECRC, SCOSC/SCORC, SAVE_CURSOR/SAVE_CLEAR_AND_SWITCH) unified into a single SavedCursor helper — SCORC and DECRC can no longer silently diverge, and the pending-autowrap flag is now correctly saved and restored
  • Terminal: Terminal.SCROLL_BACK_COUNT is static final instead of a mutable public field, removing a source of buffer/index mismatches
  • Dead code removed and visibility tightened across the terminal module (unused SessionOperator/ColorUtils/RunnableUtils, unused TerminalIO.putOutput(byte), TerminalBuffer.shiftUp/shiftDown(int), Utf8Decoder.hasActiveSequence(), unused Glyph metrics fields; several render/mode methods made private)
  • Video encoding moved off the server thread onto an async last-frame-wins encoder; internet tick, frame buffers and the VXLAN send path optimized (idle-skip, pooling, caching, report-once warnings)
  • Block entity sync consolidated onto a single channel, dropping duplicate payload messages
  • Linting is stricter by default: Checkstyle/PMD/SpotBugs now fail the build instead of only reporting, and Error Prone runs on by default with a curated set of checks promoted to errors
  • Sedna updated to 4.0.1 (from 3.1.0): GlobalMemoryRangeAllocator migrated to the new DeviceBus API (Board.addDevice/removeDevice moved off Board in this release); Ceres bumped to 0.0.7 (deserialization sanity-checks array sizes >64 MB)

Fixed

  • Terminal: xterm-256 color cube used 0xdf instead of 0xd7 for the 4th cube level — a typo that shifted several palette colors (#30)
  • Terminal: DSR (CSI n) with no parameter now replies with a status report (\033[0n) instead of hanging — ECMA-48 treats the omitted default as Ps=5
  • Terminal: CSI cursor-move argument saturation (Integer.MAX_VALUE) could overflow when added to the current position; counts are now clamped before the add (#27)
  • Terminal: REP (repeat preceding character) with a huge count could freeze the VM worker under the IO lock; clamped to one screen's worth of repeats
  • Terminal: HPA moved the cursor under DECOM origin mode instead of keeping the row fixed
  • Terminal: DECRC restored a saved cursor column beyond the current width after a DECCOLM shrink, causing a false line wrap on the next character; restore now clamps like every other cursor-move path
  • Terminal: ESC ) (designate G1 charset) was writing into G0 instead of G1, making the G1 slot unreachable — both designators now route to their own charset field
  • Terminal: a truncated true-color/256-color SGR sequence (e.g. 38;2;1, missing RGB components) leaked its leftover byte into being applied as an unrelated style attribute (e.g. bold); the whole incomplete color spec is now discarded instead
  • Terminal: the per-row dirty bitmask could silently wrap (1 << dirtyLine on a 32-bit int) when writing far back into scrollback, flipping an unrelated bit instead of the row that changed; out-of-range rows now force a full redraw instead
  • Terminal: FontHandling/UnicodeFontRenderer are now annotated @OnlyIn(CLIENT), so an accidental import from common code fails fast at class-load instead of risking a dedicated-server crash inside Minecraft.getInstance()
  • Terminal: resizeWidth marked every renderer dirty twice (once directly, once via markAllDirty()); the redundant pass is removed
  • Terminal: CSI intermediates $ and * are mutually exclusive per xterm; a malformed combination (e.g. CSI *$|) is now ignored instead of misapplied
  • Redstone Interface: getRedstoneOutput/setRedstoneOutput used the raw block-space side instead of rotating it through the block's FACING, so outputs didn't turn with the block; now uses the same HorizontalBlockUtils.toGlobal() rotation already applied to inputs (upstream issue #164)
  • Network Connector: could not be attached to a fence post — canSurvive now also accepts BlockTags.FENCES on the attached side, in addition to the existing solid-face check (upstream issue #225)
  • Internet card MAC address is now derived from a stable per-card UUID instead of being read from NBT (also closes a spoofing/collision risk)
  • Rate limits added for PCM/keyboard/framebuffer network messages; ICMP echo handling made non-blocking
  • VXLAN manager could throw after shutdown in some races; default host settings sanitized
  • OnyxOS: bundled kernel/rootfs image updated (S-mode boot path from OpenSBI confirmed working; kernel now boots to a framebuffer console via the FDT simple-framebuffer path)

This mod has no additional files