Skip to content

@MCJack123 MCJack123 released this Sep 13, 2019 · 15 commits to master since this release

Quick bugfix release.

  • Added automatic update checking
    • Pops up a window alerting the user about the new version
    • Can be disabled with the checkUpdates config option
    • Will be expanded into an auto-updater in v2.1
  • Added term.setPaletteColor(color, hex) syntax
  • Fixed plug-in loading on Mac
  • Fixed computer label always getting reset to true
  • Fixed ignoreHotkeys not being saved
Assets 4

@MCJack123 MCJack123 released this Sep 9, 2019 · 23 commits to master since this release

CraftOS-PC 2 has reached a stable state and is ready for production.

Linux builds are no longer included in the release, please install using the PPA if you are using Ubuntu. See README.md for more information.

Changes since Pre-Release 1:

  • Fixed high CPU usage, now uses ~5% CPU at idle
  • Moved plugin directory on Mac to CraftOS-PC.app/Contents/PlugIns
  • Fixed HTTP requests

Changes since CraftOS-PC v1.2:

  • Rewrote code base in C++
    • Improves performance of emulator
    • Reduces system resource usage (~5% CPU, 8 MB RAM at idle on Windows)
    • No longer truly cross-platform, requires platform-specific binaries
  • Added built-in screenshots
    • Take a screenshot with F2 or call term.screenshot(path)
      • path is a global path outside of CraftOS and is optional
    • Saved to ~/.craftos/screenshots by default
  • Added some configuration variables
    • debug_enable (false): Set to true and reboot to enable debug API (or disable removal)
    • ignoreHotkeys (false): Set to true to disable hotkeys (F2, F3)
    • isColor (true): Toggles whether the computer is an Advanced Computer or Standard Computer
  • Settings are now stored at ~/.craftos/config/*.json
  • Added multi-computer support
    • Computers can be added with periphemu.create(<id>, "computer")
    • Can be added from the shell with attach <id> computer
    • Both forms attach the computer peripheral to the current computer
  • Added modem peripheral
  • Added GIF recording support
    • Press F3 to toggle recording
    • Shows red circle in corner while recording
    • Limited to 15 seconds for performance reasons
    • Saves to ~/.craftos/screenshots/<time>.gif
  • .craftos directory is now created on boot
  • Added some CC: Tweaked features
    • #16 (Add monitor.getTextScale())
    • #24 (Add automatic HTTPS requests)
    • #25 (Add term.nativePaletteColor())
    • #29 (Make os.time() and os.date() case-insensitive)
  • Added switch to auto-run script (--script )
  • Added switch to run headless from the console (--headless) (does not work on Windows build, recompile for the console subsystem to use)
  • Added WebSocket support
    • http.websocket(url) will open a client WebSocket connecting to url
    • http.websocket() will open a server WebSocket that can be connected to
  • Added plugin/module system
    • Add plugins in the <installation directory>/plugins folder (CraftOS-PC.app/Contents/PlugIns on Mac)
    • See DOCUMENTATION.md for more details
  • Added file.seek method
  • Added io library with proper filename redirects
  • Added drive peripheral
    • Use disk.insertDisk(string path) to mount a folder or audio file
    • Use disk.insertDisk(number id) to mount a floppy disk from ~/.craftos/computer/disk/<id>
  • Added a whole bunch of features from CC: Tweaked, making CraftOS-PC mostly compatible with CC:T
  • Added new ROM features

I've also attached the CCEmuX adapter plugin binaries to this release.

If you experience problems with CraftOS-PC, you can file an issue, or you can ping me on the ComputerCraft Discord server.

Assets 5

@MCJack123 MCJack123 released this Aug 26, 2019 · 41 commits to master since this release

It's time. Features have been locked, and debug symbols have been dropped. It's time for a pre-release build! CraftOS-PC 2 now has all of the features I wanted to implement before release. There's still a bit of debugging left to do before it's stable, so keep this in mind and report crashes if found. CraftOS-PC v2.0 is tentatively scheduled to release on September 8th.

Here are the new features since Beta 3:

  • Added WebSocket support
    • http.websocket(url) will open a client WebSocket connecting to url
    • http.websocket() will open a server WebSocket that can be connected to
  • Added plugin/module system
    • Add plugins in the <installation directory>/plugins folder
    • See DOCUMENTATION.md for more details
  • Added file.seek method
  • Added io library with proper filename redirects
  • Added drive peripheral
    • Use disk.insertDisk(string path) to mount a folder or audio file
    • Use disk.insertDisk(number id) to mount a floppy disk from ~/.craftos/computer/disk/<id>
  • Added a whole bunch of features from CC: Tweaked, making CraftOS-PC mostly compatible with CC:T
  • Added new ROM features
  • Moved font into executable (no longer requires craftos.bmp)
  • Redid HTTP client/server code, removing some dependencies (expect bugs)

8/31/19: The Windows installer has been re-released to fix dependency errors.

Assets 8

@MCJack123 MCJack123 released this Aug 20, 2019 · 75 commits to master since this release

CraftOS-PC 2 is getting closer to release, adding some of the final features to be implemented. This will hopefully be the last beta build (next will be release candidate). This release also is the first to fully pass CraftOSTest (in the repo root), indicating full API compatibility.

In this build:

  • Rewrote codebase to pure C++
  • Added multi-computer support
    • Computers can be added with periphemu.create(<id>, "computer")
    • Can be added from the shell with attach <id> computer
    • Both forms attach the computer peripheral to the current computer
  • Added modem peripheral
    • Still WIP, expect some bugs
  • Added GIF recording support
    • Press F3 to toggle recording
    • Shows red circle in corner while recording
    • Limited to 15 seconds for performance reasons
    • Saves to ~/.craftos/screenshots/<time>.gif
  • Added coroutine override to partially solve some problems in #1
  • Moved Windows install directory to 64-bit Program Files
  • .craftos directory is now created on boot
  • Reimplemented fs.find, fixing #4 (fs.find returns {} on Windows)
  • Added some CC: Tweaked features
    • #16 (Add monitor.getTextScale())
    • #24 (Add automatic HTTPS requests)
    • #25 (Add term.nativePaletteColor())
    • #29 (Make os.time() and os.date() case-insensitive)
  • Moved all dynamic libraries into Mac app (fixes dyld errors)
  • Added switch to auto-run script (--script )
  • Added switch to run headless from the console (--headless) (does not work on Windows build, recompile for the console subsystem to use)
Assets 5

@MCJack123 MCJack123 released this Aug 13, 2019 · 112 commits to master since this release

CraftOS-PC 2.0 is now compatible with all CraftOS-PC Classic APIs! This means that all of the features of CraftOS-PC Classic will work on CraftOS-PC 2. Some features were already available in Beta 1, but Beta 2 adds the rest of them:

  • mounter API
  • HTTP server listeners
  • Terminal & monitor resizing
  • Window icons
  • Holding Ctrl-T sends terminate event

These are the rest of the changes in Beta 2:

  • Added built-in screenshots
    • Take a screenshot with F2 or call term.screenshot(path)
      • path is a global path outside of CraftOS and is optional
    • Saved to ~/.craftos/screenshots by default
  • Added some configuration variables
    • debug_enable (false): Set to true and reboot to enable debug API (or disable removal)
    • ignoreHotkeys (false): Set to true to disable hotkeys (F2)
    • isColor (true): Toggles whether the computer is an Advanced Computer or Standard Computer
  • Distributed builds now use the CraftOS-PC ROM instead of the ComputerCraft ROM
  • Moved ~/.craftos/config.json to ~/.craftos/config/global.json
  • Big changes under the hood
    • Switched to software rendering from hardware rendering (see #5)
    • Rearranged a bunch of the code in preparation for multiple computers
    • Changed event queuing system to put parameter threads under a separate state rather than the main state
      • This should a) reduce memory leakage or b) improve event stability

UPDATE: The Windows installer has been updated to include the Visual C++ redistributable and some necessary DLLs that were not included in the original release.

Assets 5

@MCJack123 MCJack123 released this Aug 7, 2019 · 122 commits to master since this release

The CraftOS-PC 2 codebase is now stable enough for a beta release! The API is mostly compatible with the original ComputerCraft API, with the following features ported from CraftOS-PC Classic:

  • config API - adjust ComputerCraft configuration
  • periphemu API - attach peripherals to the computer
    • monitor
    • printer
  • Terminal graphics mode
  • debug API access

Here are the known bugs with this version (shouldn't impair usage of the emulator):

  • #1: Lua C can't yield inside pcalls, causing tracebacks to end at pcalls
  • #3: fs.list("/") does not list "rom"
  • #4: fs.find returns {} on Windows

I plan on adding these features to CraftOS-PC 2 in the future:

  • mounter API - mounts local drives into ComputerCraft (CraftOS-PC Classic)
  • HTTP server (CraftOS-PC Classic)
  • Toggle between normal computer and advanced computer
  • WebSocket support (CC: Tweaked)
  • Native IO library (CC: Tweaked)
  • Multiple computer support (CCEmuX)
  • speaker (CraftOS-PC Classic), modem (CCEmuX) peripherals
  • Pocket computers?
Assets 4
You can’t perform that action at this time.