Skip to content

CraftOS-PC v2.4

Compare
Choose a tag to compare
@MCJack123 MCJack123 released this 15 Aug 18:19
· 868 commits to master since this release
40bdbb4

After a month and a half of development, CraftOS-PC v2.4 is ready for release. This version includes a new renderer that uses the GPU to accelerate the terminal. It also contains a whole bunch of bug fixes and some small features. Last but not least, CraftOS-PC v2.4 introduces a brand-new icon. Inspired by macOS Big Sur's new design language, this new icon is high-resolution, high-color, and highly-textured. I hope you enjoy all of the new features and fixes CraftOS-PC v2.4 brings.

  • Added new GUI terminal that uses hardware rendering (experimental)
    • It uses the GPU to accelerate drawing graphics
    • Uses the same base code that was used prior to v2.1, with updates that have been added since
    • Support can be enabled with the useHardwareRenderer config option or the --hardware or -r hardware-sdl CLI flag
    • A test script is available to see which is better for your system
      • You can run it with gist run 802f64508a1f51b3244f5bcc0414ca22
    • Vsync can be enabled with the useVsync option
    • The driver to use can be selected with the preferredHardwareDriver config option or the -r CLI flag
      • These are all of the possible drivers:
        • direct3d
        • direct3d11
        • directfb
        • metal
        • opengl
        • opengles
        • opengles2
        • software
      • Some drivers may not be available on your system
      • Use craftos -r to list all available drivers
  • Updated CC:T version to 1.90.2
    • Add cc.image.nft module, for working with nft files. (JakobDev)
    • Add configuration to control the sizes of monitors and terminals. (defaultWidth/defaultHeight)
    • Fix string serialization error in textutils.serializeJSON.
  • Brand-new app icon
    • Designed especially for CraftOS-PC
    • Inspired by the aesthetic of macOS Big Sur
    • High-resolution, textured, modern
  • Added proper double-buffering to the terminal
    • This allows you to use the term API while CraftOS-PC is rendering
    • This speeds up programs that end up running lower than the render FPS
  • Added introduction & update MOTD messages
    • When run for the first time (or in a new directory), an introduction message is displayed
    • When run after an update, a notification message is displayed, and suggests running help whatsnew
  • Added support for monitor_touch event as expected (#119)
    • This removes the mouse_* events for monitors
    • The previous behavior can be restored by setting the monitorsUseMouseEvents config setting
      • This will also add the monitor's side as a fourth parameter
  • Added standardsMode config option for strict compatibility with CC:T/CCEmuX
    • Forces time readings & timer resolution to be rounded to 50 ms (1 tick)
    • Adds back colored margins as shown in CC
    • More compatibility tweaks may be added under this option
  • Added startFullscreen per-computer config option
  • Disabled access to romReadOnly from CraftOS
  • Fixed ABI compatibility with standard Lua libraries
    • This means you can now properly use Lua libraries (e.g. from LuaRocks) as plugins
    • Prefix the library name with lua_ to tell CraftOS-PC to skip loading plugin metadata
  • Updated plugin API version to 4
  • Added ID to per-computer config error messages
  • Modems now act as wired modems and can be used to access non-local peripherals (#122)
    • Non-local peripherals can now be listed with peripheral.getNames() when a modem is attached
  • Fixed a crash when opening a debugger twice (#120)
  • Fixed a rare race condition while getting an event (#123)
  • Fixed an issue with saving screenshots to disk
  • Fixed a bug where function key hotkeys don't work when Caps or Num lock is enabled
  • Fixed a bug causing the locals table in the debugger to be missing
  • Fixed bit32.lrotate returning incorrect results
  • Fixed crash when closing CraftOS-PC while a WebSocket is shutting down
  • Fixed crash when using too many nested coroutines (#124)
    • This was due to a bug that didn't update the C call count properly
    • Calling too many nested coroutines will result in a "C stack overflow" error
  • Fixed a race condition in periphemu.detach
  • Fixed incorrect prettification of non-contiguous tables (#125)
  • Fixed raw terminals getting the same ID
  • Added some more locks on timers to prevent crashes
  • Fixed abort timeout not working before first yield
  • Fixed missing UK spelling of term.nativePaletteColour
  • Fixed modem hang due to locks not waiting
  • Fixed missing modem distance field in modem_message event
  • Fixed utf8.char returning %U for each character
  • Fixed a random crash when calling a NULL C function (this shouldn't happen)
  • Fixed styling of message dialogs on Windows
  • Fixed events going to the wrong window in raw mode
  • Fixed Ctrl-R/S/T shortcuts not working in non-GUI modes
  • Disabled fullscreen support in WASM to avoid crashes (#100)
  • Mac: macOS 10.13 or later is now required for official builds
    • Users on older versions are still able to build and run CraftOS-PC themselves
  • Windows: The solution now uses vcpkg for dependencies, so NuGet and separate builds are no longer required
  • Windows: PDF printing is now supported in all builds
  • Windows: Changed Visual C++ Runtime and other libraries to dynamic linking
    • This reduces executable size, but the VCRT redistributable is now strictly required
    • More DLLs will be required as well

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.