Releases: MCJack123/craftos2
CraftOS-PC v2.1
CraftOS-PC's first minor update is here, introducing some new features and many bugfixes.
- Added 256 color mode
- This can be activated with
term.setGraphicsMode(2)
- Use numbers 0-255 to choose color instead of
colo(u)rs
API - Colors 0-15 are set to default colors, use
term.setPaletteColor([0-255], r, g, b)
to set color palette
- This can be activated with
- Added auto-updater, allowing one-click installation of new updates (Windows/Mac only)
- Added custom fonts
- Set
customFontPath
to the (real) path to the font (BMP format only) - Set
customFontScale
to the font scale- 1 = HD font (12x18), 2 = normal font (6x9), 3 = 2/3 size font (4x6)
- Set
- Fixed graphics issues on Linux with NVIDIA graphics
- Renderer has been rewritten to fix this
- Should improve performance when using a reasonable number of windows
- May degrade performance when using >1000 windows at once on a slow system
- Added CLI mode
- This can be activated with the
--cli
option - Not available on Windows (use WSL if necessary)
- This can be activated with the
- Added more HTTP methods
- Added fullscreen hotkey (F11)
- Added
romReadOnly
config option - Added Ubuntu 19.10 & Arch packages
- Added autoconf script to compile
- Many bugfixes
- Fixed compositor disabling on KDE
- Fixed
monitor.setTextScale
- Fixed
term.screenshot
- Fixed
fs.getDrive
- Fixed window resizing on Linux
- Fixed many compilation warnings
- Cleaned up code to be more C++-like
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.
Note for macOS Catalina users
macOS Catalina adds a new policy that requires apps to be notarized with a Developer ID. Because I do not have a paid developer account, I cannot notarize Mac builds, and as a result, double-clicking CraftOS-PC for the first time will not work. To resolve this, right-click on the app and click Open. Afterwards, you can double-click the application as normal.
CraftOS-PC v2.0.1
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
CraftOS-PC v2.0
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
- Take a screenshot with F2 or call
- 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
- Computers can be added with
- 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
- 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 tourl
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
- Add plugins in the
- 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.
CraftOS-PC v2.0 Pre-Release 1
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 tourl
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
- Add plugins in the
- 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.
CraftOS-PC v2.0 Beta 3
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
- Computers can be added with
- 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
- 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)
CraftOS-PC v2.0 Beta 2
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
- Take a screenshot with F2 or call
- 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.
CraftOS-PC v2.0 Beta 1
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 configurationperiphemu
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?