This is a completely new emulator written from scratch, as a 'revival' of my original emulator CCEmu,
It's written in Java and makes use of the ComputerCraft jar.
It also uses the LibGDX library for the graphics and user interfaces.
Screenshots: HERE
What the launcher looks like:
What the emulator looks like:
Launcher Download: ccemuredux-launcher.jar
Please log all bugs, and feature requests etc on the issue tracker
Issue Tracker: CCEmuRedux Issues
Changes:
Spoiler
v1.1-dev.20 :
Updated ComputerCraft font, as was still using font from 1.76pr6
v1.1-dev.19 :
Fixed issue where 'power state' wasn't polled by emulator, causing inability to reboot computer if shutdown via os.shutdown()
v1.1-dev.18 :
Update to ComputerCraft 1.79
Fixed issue where the repeat boolean wasn't being added to key events
v1.1-dev.17 :
Update to ComputerCraft 1.78
The _HOST variable now gets set to "ComputerCraft 1.78 (CCEmuRedux v1.1-dev.17)"
v1.1-dev.16 :
Update to ComputerCraft 1.76
v1.1-dev.15 :
Update to ComputerCraft 1.76pr6
Shortened CTRL+{S,R,T} times to match CC1.76
v1.1-dev.14 :
Update to ComputerCraft 1.75
Show CC version next to emulator version on main menu
v1.1-dev.13 :
Fix normal computers being able to output colours using term.blit
Allow emulator to attempt to run in software OpenGL mode
v1.1-dev.12 :
Fix missing key_up and mouse_up events
Increase max clipboard paste length to 512
Added support for holding multiple keys down
v1.1-dev.11 :
Update to ComputerCraft 1.74
Main menu will show a warning if you try to use a version of ComputerCraft that the emulator isn't designed for
Fix issue of library being misnamed on OSX Java 8
Native libraries are now extracted to .ccemuredux/bin/natives, fixes issue caused by tmp dir being non-executable
v1.1-dev.10 :
Backported to LibGDX 0.9.9 (OpenGL 1.0)
Added ability to double click sessions in the session list
v1.0-dev.9 :
Updated to ComputerCraft 1.65
v1.0-dev.8 :
Fixed a minor bug so that mouse_drag is now only fired once the mouse enters a new 'pixel'
v1.0-dev.7 :
Fixed issue where keyboard shortcuts affected all terminals
Added wireless modems, no gui atm, must be added manually
v1.0-dev.6 :
Fix font rendering
Add ability to configure the data dir by specifying the jvm system property 'com.xtansia.ccemu.path' on the command line
v1.0-dev.5 :
Increase default space limit from 32KiB to 1MiB
v1.0-dev.4 :
Set http_whitelist to '*' by default
Make terminal dimensions fixed ala CC1.63
v1.0-dev.3 :
Fixed a terminal rendering derp that caused things to be offset
Fixed colours in terminals
Fixed spamming of mouse_drag events when mouse hadn't entered a new character area
Fix issue where only keys with characters associated would fire repeat events
Fix issue where you would not be able to restart a computer after either terminating from shell or shutting down from inside the actual computer
Add the ability to use CTRL+[T,R,S] shortcuts
v1.0-dev.2 :
Added ability to paste into terminals
v1.0-dev.1 :
Changed data directory path scheme
Changed version numbering scheme
How to manually add a wireless modem:
Spoiler
Set the peripheral type value for the desired side to be "WirelessModem" in the computers settings file (DATA_DIR/sessions/SESSION_NAME/computer/ID.json).
Like this, replacing SIDE with the desired side:
NOTE: The ellipsis here represents the rest of the content of the file, for brevity's sake. So DO NOT replace the entire file with the above snippet.
How to manually set the data directory:
Spoiler
You can configure the data directory by specifying the 'com.xtansia.ccemu.path' jvm system property when running the launcher.
e.g.
java -Dcom.xtansia.ccemu.path="local_data" -jar ccemuredux-launcher.jar
Will set the data directory to 'local_data' in the current working directory.
The data directory is located at:
Windows: %APPDATA%\.ccemuredux
Linux: ~/.ccemuredux
OSX: ~/Library/Application Support/ccemuredux
Nice! Good to see a nice emulator that uses the jar and LuaJ. Will it be open source?
//offtopic: Also, are those Windows 8 windows, or some Linux distro, or something else entirely? What gives them that gradient effect?
I'm definitely looking into making it open source, but due to how ComputerCraft is 'licensed' I would most likely not be able to open source the couple classes that interact with it
//offtopic: Yeah it's windows 8, I have a theme installed which makes them look like that, Snowy8
- Is it 1.6 (or even better, can you add a thing to switch versions)
- With the ComputerCraft.jar, what's the limiting factors preventing you from using it. Does the new mod EULA change anything. Also, wouldn't your permission from Dan for 1.0 carry on to 2.0?
- How are you drawing the screen, as I often use emulators on battery power I don't really want it to be redrawing everything 60 times a second. Maybe only drawing pixel changes (i.e. when you call term.write)
But yea, looks good, looking forward to the release!
- Is it 1.6 (or even better, can you add a thing to switch versions)
- With the ComputerCraft.jar, what's the limiting factors preventing you from using it. Does the new mod EULA change anything. Also, wouldn't your permission from Dan for 1.0 carry on to 2.0?
- How are you drawing the screen, as I often use emulators on battery power I don't really want it to be redrawing everything 60 times a second. Maybe only drawing pixel changes (i.e. when you call term.write)
But yea, looks good, looking forward to the release!
1. Yes it is using 1.63 currently, but I may look into a feature like that
2. I have no clue about the EULA, but dan200 doesn't allow redistribution of CC except for modpacks without express permission, as for the 1.0->2.0, it's effectively a brand new application and when I discussed the original with dan, he said it only applied to that app, and if to ask him first about future projects.
3. It is continuous render, I will look into doing non-continuous render mode, but no guarantees on how well that will go
One simple (but not the best way) way of doing it that I use in my CC programs is setting a variable to true when anything on the screen has potentially changed (eg term.write("") will still flag it) and if so redraw. It isn't the best solution, but it works.
EDIT will a system where the user supplies the CC.jar work?
Edited by awsmazinggenius, 21 May 2014 - 04:03 AM.
One simple (but not the best way) way of doing it that I use in my CC programs is setting a variable to true when anything on the screen has potentially changed (eg term.write("") will still flag it) and if so redraw. It isn't the best solution, but it works.
EDIT will a system where the user supplies the CC.jar work?
I can think of ways to do it, Will definitely look into it more in depth at some point
Yeah I could do that fairly easily, probably wouldn't be too robust, but I could definitely throw something together
The other thing you could look in to is to download the jar directly from the source Dan gives, so just download the jar directly from http://www.curseforg...erCraft1.63.jar
That's not really redistributing. But yea, the best would be to just talk to Dan about it.
/Should/ work on Windows, OSX and Linux Theoretically /could/ work on android too but would only really be feasible on a tablet and using a physical keyboard. <- Emphasis on the theoretically
Yeah, agree with oeed that something should be implemented. Often I find myself with my MacBook Air in places with no/crappy Wi-Fi, so I'm on battery and already using my phone's Personal Hotspot.
Yeah, agree with oeed that something should be implemented. Often I find myself with my MacBook Air in places with no/crappy Wi-Fi, so I'm on battery and already using my phone's Personal Hotspot.
Non-constant render mode is on my todo list,
And I'm currently trying to contact dan about permission and how best to go about the computercraft jar
Yeah, agree with oeed that something should be implemented. Often I find myself with my MacBook Air in places with no/crappy Wi-Fi, so I'm on battery and already using my phone's Personal Hotspot.
Non-constant render mode is on my todo list,
And I'm currently trying to contact dan about permission and how best to go about the computercraft jar
If I were you, I'd try to implement support for major versions (1.5, 1.6) and have the user provide the jar for whatever version they want to emulate.