CraftOS-PC Accelerated v2.4.2
Pre-releaseOne year ago today, CraftOS-PC 2 was officially launched, touting fast speeds and more features than any other emulator out there. Today, CraftOS-PC is more stable and accurate than ever, with even more features than it originally released with. It's grown from a small program to test CraftOS in a C environment, to an entire emulator platform with multiple editions and strong compatibility. The past year has been quite a ride for me, and in between school and a pandemic I've been working non-stop to make CraftOS-PC the best emulator it can be.
Happy birthday, CraftOS-PC!
CraftOS-PC v2.4.2 is a small feature update, with some compatibility fixes as well as a few new features. It also adds FFI support for CraftOS-PC Accelerated, as well as a few more bugfixes.
Don't mind the fact that CI tests fail; it's because of the date-specific MOTDs firing today and breaking the CC:T 1.91 tests. This will be fixed with 1.92.
- Updated CC:T version to 1.91.0
- Add string.{pack,unpack,packsize} (MCJack123)
- Escape non-ASCII characters in JSON strings (neumond)
- Make field names in fs.attributes more consistent (abby)
- Fix textutils.formatTime correctly handle 12 AM (R93950X)
- Speakers are now emulated closer to how they work in ComputerCraft
- Each speaker has its own channel pool
- Channels are allocated as needed
- The
maxNotesPerTick
option now properly caps notes every 1/20 s - Only one sound can be played at once
- Channel numbers are now returned as a second argument
- These can be passed to
stopSounds
to stop one channel
- These can be passed to
- Replaced custom bit32 library with standard Lua 5.2 implementation
- This fixes a bug where functions can't take more than two arguments
- This should also fix any other possible bugs in the bit32 library
- Fixed yielding from callbacks of certain functions:
string.gsub
table.sort
- debug hooks
- The only function that can't yield from a callback is
load
- Added
--mc-save
argument to load computers from a Minecraft save- This reads from the default Minecraft save directory
- If the save isn't stored there, you can't use this argument (use
--computers-dir
instead)
- Added date-specific MOTDs
- One of these appears today (September 8)!
- Added support for hardware renderer in raw client mode
- Functions can now return an unlimited* number of values
- Updated cash to use
cc.require
module - Fixed a bug causing the same MOTD to appear on each boot
- Fixed a bug causing a failure to connect to
localhost
over HTTP - Fixed a bug with the \x escape code
- Modified internals of plugin loader, fixing a memory leak in the process
- JIT: Updated LuaJIT to 2.1.0-beta3
- JIT: Moved plugin path back to
plugins-luajit
as expected - JIT: Added FFI library (available with
jit_ffi_enable
set to true) - JIT: Removed
os.setHaltOnLongRunMode
, count hooks are no longer used - JIT: Fixed a bug causing
io.read
to not work - Windows: Added error dialog when using console-only options with non-console builds
- Mac: Application is now built as a Universal binary (excluding CraftOS-PC Accelerated, as LuaJIT does not fully support ARM64 yet)
The CC:T builds have been updated to fix an issue with the bit library that prevents it from booting.
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.