FAQ — Frequently Asked Questions

A list of a few common questions and problems.

Why Ocelot Desktop?

Indeed, there is a plenty of other emulators. The tables below demonstrate how Ocelot Desktop fares against them. (If you spot a mistake here, please tell us!)

Feature Ocelot OCEmu OCVM
Customizable setups Partial
GUI
Workspaces
Persistence Filesystem only Filesystem only
Constrained memory
Original OC timings (CPU, GPU)
Changeable emulation speed
Configurable CPU architectures
Networking
Non-graphical configuration (for automation)
Custom machine.lua
Emulator Lua API
GPU buffers (OC 1.7.6)
Custom OpenComputers config

Component support:

Component Ocelot OCEmu OCVM
GPU (All 3 tiers)
T3 only T3 only
CPU (All 3 tiers)
Partial Partial
APU
Network card
Wireless network card
Linked card
Redstone (All tiers)
Data cards (All 3 tiers)
T1 Only
Hard disks
Internet card
Floppy disks
Relay
Holographic projector (All tiers)
RAID
Microcontroller
T2 Only
Rack & Servers

Vanilla Minecraft, external mods:

(Components that are available through Adapter block, robot upgrades or provided by external mods/addons)

Component Ocelot OCEmu OCVM
Note Block (Vanilla)
Iron Note Block (Computronics)
Sound card (Computronics)
Camera (Computronics)
Colorful lamp (Computronics)
Self-Destructing card (Computronics)
Radio (OpenFM)
Tape drive & tapes (Computronics)

I found a bug! How I can report it?

Please create an issue on our issue tracker.
Or just tell us on IRC: #cc.ru at irc.esper.net.
Or leave a message in our Discord (for example in the #main text channel, or "Ocelot Dev" forum).

Ocelot is taking a lot of memory. Is it leaking?

You can try to limit the memory usage with this command line option:

java -Xmx1G -jar ocelot.jar

Set the memory amount to any appropriate in your case (here it is set to 1 gigabyte of RAM).
The reasonable lower threshold could be -Xmx256M.

The reason why Ocelot Desktop may be taking more memory than it needs lies in how JVM approaches garbage collection.
Every GC call lowers overall application performance, so JVM constantly balances between calling the GC or taking a bit more RAM when it is available and free.

What are the emulator's hotkeys?

The help bar at the bottom shows actions you can perform on the hovered element.

Illustration of Ocelot Desktop status bar

In addition, there are a few "hidden" hotkeys:

F1 Toggle a UI layout debug view

F2 Toggle a FPS counter

F3 Reload the workspace

F4 Show a profiler window

F5 Quick save

F9 Quick load

F11 Toggle fullscreen mode (can also be toggled from Settings dialog)

How do I resize a screen window?

Just drag the bottom-right corner of the window. It will be scaled in discrete steps: 1:1 (100%); 1:2 (50%); 1:4 (25%)... To enlarge the window beyond 1:1, press Shift while dragging.

Can I change TPS / emulation speed?

Yes, you can. Use the right mouse button on the TPS counter in the bottom right corner of the screen.
You will be presented with an option to change either the duration of one tick (Milliseconds per tick) or the number of ticks per seconds (TPS).
(These numbers are synced, if you will edit one of them another will recalculate automatically.)

NOTE: stability and reliability are not guaranteed on high emulation speeds.

Is it possible to apply custom OpenComputers configuration?

Yes. You can point Ocelot to the opencomputers.cfg file location. (Usually it is in Minecraft config folder.).
The corresponding setting can be found in the Settings > System tab (you will need Ocelot Desktop 1.10+).

Alternatively, you can take your opencomputers.cfg and copy it to the Ocelot folder (where ocelot.jar is located).
Then rename it to brain.conf.

In both cases restart Ocelot if it was running.

Ocelot should read the configuration and apply all parameters that are applicable in the emulator.

I get a weird error saying something about an inconsistency detected by ld.so

$ java -jar ocelot.jar 12:52:23.759 [main] INFO ocelot.desktop.util.Ticker - Setting tick interval to 50000.0 us (20.0 s^-1) 12:52:23.798 [main] INFO ocelot.desktop.OcelotDesktop$ - Starting up Ocelot Desktop 12:52:23.800 [main] INFO totoro.ocelot.brain.Ocelot$ - Brain initialization... 12:52:23.800 [main] INFO totoro.ocelot.brain.Ocelot$ - Version: 0.6.8 12:52:23.800 [main] INFO totoro.ocelot.brain.Ocelot$ - Loading configuration... ... 12:52:24.196 [main] INFO totoro.ocelot.brain.Ocelot$ - Initialization finished. 12:52:24.209 [main] INFO ocelot.desktop.Settings$ - Loaded Ocelot Desktop configuration from: /home/user/.config/ocelot/ocelot.conf 12:52:24.210 [main] INFO ocelot.desktop.ColorScheme$ - Loading color scheme 12:52:24.224 [main] INFO ocelot.desktop.ColorScheme$ - Loaded 66 colors 12:52:24.280 [main] INFO ocelot.desktop.util.Ticker - Setting tick interval to 50000.0 us (20.0 s^-1) 12:52:24.281 [main] INFO ocelot.desktop.util.Ticker - Setting tick interval to 16.666666 us (60000.004 s^-1) Inconsistency detected by ld.so: dl-lookup.c: 106: check_match: Assertion `version->filename == NULL || ! _dl_name_match_p (version->filename, map)' failed!

That's a known problem with our dependency, LWJGL2, on Java 9 and newer. As a workaround, try to launch Ocelot Desktop on Java 8.

I get java.lang.ExceptionInInitializerError while launching Ocelot on Linux

$ java -jar ocelot.jar 11:07:55.744 [main] DEBUG ocelot.desktop.ui.UiHandler$ - Unpacking native libraries to: /tmp/ocelot-desktop3012137764779182488 Exception in thread "main" java.lang.ExceptionInInitializerError at ocelot.desktop.ui.UiHandler$.isFullScreen_$eq(UiHandler.scala:95) at ocelot.desktop.ui.UiHandler$.init(UiHandler.scala:140) at ocelot.desktop.OcelotDesktop$.mainInner(OcelotDesktop.scala:72) at ocelot.desktop.OcelotDesktop$.main(OcelotDesktop.scala:139) at ocelot.desktop.OcelotDesktop.main(OcelotDesktop.scala) Caused by: java.lang.ArrayIndexOutOfBoundsException: 0 at org.lwjgl.opengl.LinuxDisplay.getAvailableDisplayModes(LinuxDisplay.java:951) at org.lwjgl.opengl.LinuxDisplay.init(LinuxDisplay.java:738) at org.lwjgl.opengl.Display.<clinit>(Display.java:138) ... 5 more

LWJGL2 relies on xrandr to detect screen modes, therefore requires installation of xrandr.

What are Ocelot Desktop's system requirements?

Ocelot Desktop requires Java 8 or higher.

It should work on Windows XP (in theory) and higher, majority of Linux distributions, and reasonably recent macOS versions, except ARM based (M-series CPUs like M1, M2 are not yet supported).

Ocelot Desktop uses OpenGL 3.0+ for rendering.