CraftOS-PC Accelerated v2.5
Pre-releaseMerry Christmas (to those who celebrate it)! This year, Santa has brought you a fresh new version of CraftOS-PC, featuring a huge amount of bugfixes, with plenty of new features mixed in. The main feature is full compatibility with not just CC: Tweaked 1.94.0 (which was missing from the last update), but also 1.95.0 which just came out today (as of writing)! This is accomplished with the new ROM that is entirely based on CC:T's copy, no longer using the old CC 1.8 codebase. There's also a new plugin API, offering much better stability and opportunity for expansion, as well as some nice features such as CLI mode support for Windows.
- Reorganized code structure for easier maintenance of the codebase
- Code has been divided between APIs, peripherals, renderers, and general functions
- Resolved a large number (>1000) of warnings
- Reduced usage of
externto headers only - Made all non-global variables
static
- Rebased ROM on the CC: Tweaked ROM
- The ROM is now equivalent to the CC: Tweaked ROM with additional CraftOS-PC features from the old ROM
- With this, the CC:T Edition has been discontinued
- It wasn't really necessary anyway
- This should help improve compatibility in the ROM
- Updated CC:T version to 1.95.0
- 1.94.0
- Add getter for window visibility (devomaa)
- Use term.blit to draw boxes in paintutils (Lemmmy).
- Fix several programs using their original name instead of aliases in usage hints (Lupus590).
- 1.95.0
- Clear gets an option to reset the palette (Luca0208)
- Use term.blit on initial paint render.
- Add option to disable setting globals (Lupus590).
- Fixed length check on function name in
expect(MCJack123) - Allow strings or numbers in textutils.*tabulate.
- Make fs.combine accept multiple arguments.
- Added improved help viewer (MCJack123)
- Added numpad enter support (TheWireLord).
- Add functions to wrap text (Lupus590)
- 1.94.0
- Added new plugin API
- API version has now been bumped to 10
- New plugin init/deinit functions:
PluginInfo * plugin_init(const PluginFunctions * functions, const path_t& path);&void plugin_deinit(PluginInfo * info); - Capabilities in the old API are now present as function pointers in the
PluginFunctionsstructure passed toplugin_init - Additional functions are now available as well:
- Access to the configuration, including custom settings for plugins
- SDL event hooks
- Virtual mounts
- Running tasks on the main thread
- See https://www.craftos-pc.cc/docs/plugins for more info on how to write plugins
- Added release note viewer
- Added support for CLI mode on Windows through PDCurses
- Added optional width and height options to
term.drawPixels - Added
term.getPixelsto read a region of pixels (LoganDark) - Added optional solid color fill argument to
term.drawPixels(LoganDark) - Added some missing HTTP configuration options (besides black/whitelist)
- Added a panic handler that is more like ComputerCraft's in standards mode
- Added force-shutdown functionality when a computer refuses to close
- Added error handlers when an uncaught exception occurs
- This should not happen, but if it does CraftOS-PC will no longer fully crash
- Added tracing of the last C Lua function called, hopefully helping memory corruptions be able to be fixed
- Optimized scroll and clear routines to directly copy memory
- Fixed
os.setAlarmimplementation to no longer use 100% CPU - Fixed unknown config options being deleted
- Fixed close button and hotkeys not functioning when there are too many events in the queue (#154)
- Fixed
monitor.setTextScalenot functioning properly with non-6x9 fonts (#150) - Fixed
term.getPixelreturning the wrong values in mode 1 (#159) - Fixed a race condition while resizing when using the hardware renderer
- Fixed a race condition in
os.startTimer - Fixed a possible race condition when firing a timer
- Reduced the number of event timeout timers started when pulling events (#158)
- This fixes an issue causing the timer thread to lock up trying to process start/cancel events
- Fixed some locking issues in terminals
- Fixed missing range checks in
term.drawPixels - Fixed
term.getPixelcrashing when accessing pixel at edge of screen (LoganDark) - Fixed some issues with resizing the debugger
- Fixed computers hanging when closing the debugger on Linux (#157)
- Fixed debugger
localstable sometimes not functioning properly - Fixed some CraftOS-PC term functions being redirected (LoganDark)
- The craftos2-lua library can now be used in programs other than CraftOS-PC
- Windows: Standalone builds have been replaced with portable ZIP packages
- These function the same, but now also support plugins, the HD font, and other things previously not available
- Mac: Made the icon a bit smaller to fit the general macOS app icon template
If you need help using CraftOS-PC, I'm available on the ComputerCraft Discord server as @JackMacWindows#9776. Feel free to ping me if you need anything.