CraftOS-PC v2.6 Beta 1
Pre-releaseCraftOS-PC v2.6 brings a huge amount of fixes, as well as some performance improvements that have been dragging things down since v2.0. In addition, it adds support for the new raw mode 1.1 protocol, which includes the ability to transfer files. It's been a while since the last update, so why not make this a special one?
With CraftOS-PC v2.6 comes a new suite of mobile apps, letting you use ComputerCraft on-the-go. Simply download the app on your Android or iOS device, launch the app, and get going. Note: to open the keyboard, pinch inward, and to close it pinch outward. A better way of letting the user know this is in progress.
In the future, the apps will be available on the iOS App Store and the Google Play Store, but until then, you can get the Android app through the APK attached to this release, and you can get the iOS app on TestFlight (requires iOS 13 or later).
This is a BETA build, and as such has updates disabled. You should install this to a separate directory to avoid overwriting the stable build. On Windows, I recommend using the portable build to keep the installation separate. The main reason for this is that the performance improvements aren't confirmed stable yet, and I need to test how well it works in day-to-day use. Please report any bugs you find (especially crashes) to https://www.craftos-pc.cc/bugreport, and if possible, set snooperEnabled
to true
to allow crash reports to be sent.
Linux builds will not be available for this release. Please build this version from source if using Linux (or if you use Arch Linux, use the craftos-pc-git
AUR package).
- CraftOS-PC is now available on Android and iOS
- Apps will be available on the iOS App Store and Google Play Store
- Supports same feature set as desktop CraftOS-PC
- Pinch in to open keyboard, out to close keyboard
- Extra mobile-centric features:
mobile
API withopenKeyboard(open: boolean)
andisKeyboardOpen()
functions_CCPC_mobile_keyboard_open <height>
event when keyboard is opened, with an argument for visible height_CCPC_mobile_keyboard_close
event when keyboard is closed
- Bumped CC:T version to 1.96.0
- Use lightGrey for folders within the "list" program.
- Add cc.expect.range (Lupus590).
- Allow calling cc.expect directly (MCJack123).
- Fix paintutils.drawLine incorrectly sorting coordinates (lilyzeiset).
- Correctly handle sparse arrays in cc.pretty.
- Bumped structure version to 4
- New fields in
PluginFunctions
:addEventHook
setDistanceProvider
- New fields in
Computer
:eventHooks
rawFileStack
rawFileStackMutex
- Deprecated fields:
nextMouseMove
lastMouse
mouseMoveDebounceTimer
- New fields in
Terminal
:nextMouseMove
lastMouse
mouseMoveDebounceTimer
- New types:
event_hook
- New fields in
- Upgraded raw mode protocol to version 1.1
- New filesystem access ability
- Computer windows now send the ID of the computer
- Changed meaning of raw cursor blink field to indicate blinking, not showing
- Small improvements to the protocol
- Official protocol specification at https://www.craftos-pc.cc/docs/rawmode
- Improved performance of string concatenation by using ropes
- Final concatenation of strings is not completed until the string's value needs to be read
- This was implemented in CC:T 1.91.0
- Expect repeated concatenation operations to be around 100x faster
- Improved performance of
string.sub
by using efficient substring views- Getting a substring no longer has to reallocate the string
- Instead, it reuses the original string with the offset and length required
- Added HTTP whitelist & blacklist
- Emulates configuration of CC:T up until 1.87.0 (before rule-based system)
- Added command-line option to connect to a remote WebSocket server in raw mode
- Changed cursor blink speed to 0.4s to match CC's behavior
- Rewrote main thread task queuer to be more efficient
- Fixed "400 Bad Request" error on HTTP requests when the path is empty
- Fixed crash when a bad URL is passed to HTTP functions
- Fixed an issue causing encoded slashes in URLs being decoded prematurely (#199)
- Fixed some memory leaks in HTTP handles
- Fixed random crashes while sending messages over a modem (#205)
- Fixed sending recursive tables over modems
- Fixed old abort timer firing after reboot, causing spurious "Too long without yielding" errors
- Fixed crash when canceling a timer that doesn't exist
- Fixed
os.epoch "local"
not accounting for Daylight Savings Time - Fixed files being truncated in text mode on Windows when a
\x0A
character is found (#204) - Software rendering now reuses the same surface to reduce memory pressure
- Fixed blit only allowing gray colors on grayscale terminals
- Fixed monitors in raw mode sending close events to the wrong window ID
- Fixed some issues with setting monitor scale
- Fixed mouse event debouncing on monitors
- Fixed monitors not reporting a second
monitor_touch
event when clicked twice at the same point - Fixed
mouse_move
leave event on monitors not sending the side - Fixed behavior of
term.blit
when passing an invalid character to color strings - Fixed raw client mouse events not being sent properly
- Fixed an issue causing crashes when creating certain peripherals
__lt
metamethods can now yield from insidetable.sort
- Fixed a possible memory leak in
table.sort
- Fixed an issue causing
__lt
metamethods that yield to return the wrong result from<=
- Fixed various errors in yielding from debug hooks
- Fixed stack not being resized when > 0x08000000 entries are required
Known issues:
- Updates are disabled in this version due to being a beta. This is one reason why you should not replace your main installation.
- Plugins are not loaded in this version.
- Sometimes, random crashes may occur when calling certain functions (in particular,
os.startTimer
has been known to do this).
If you need help using CraftOS-PC, I'm available on the CraftOS-PC Discord server as @JackMacWindows#9776
. Feel free to ping me if you need anything.