diff --git a/src/main/java/li/cil/oc2/client/gui/RISCVTestScreen.java b/src/main/java/li/cil/oc2/client/gui/RISCVTestScreen.java index b6234003..fa55d605 100644 --- a/src/main/java/li/cil/oc2/client/gui/RISCVTestScreen.java +++ b/src/main/java/li/cil/oc2/client/gui/RISCVTestScreen.java @@ -199,7 +199,7 @@ public final class RISCVTestScreen extends Screen { loadProgramFile(memory, Buildroot.getLinuxImage()); loadProgramFile(rom, Buildroot.getFirmware()); - board.installDeviceTree(); + board.initialize(); runner = new ConsoleRunner(board); } diff --git a/src/main/java/li/cil/oc2/common/tile/ComputerTileEntity.java b/src/main/java/li/cil/oc2/common/tile/ComputerTileEntity.java index aa6a95ea..2987995a 100644 --- a/src/main/java/li/cil/oc2/common/tile/ComputerTileEntity.java +++ b/src/main/java/li/cil/oc2/common/tile/ComputerTileEntity.java @@ -90,6 +90,11 @@ public final class ComputerTileEntity extends TileEntity implements ITickableTil blobStorageJobHandle = null; } + if (virtualMachine != null && !virtualMachine.board.isRunning()) { + disposeVirtualMachine(); + return; + } + if (runner != null) { runner.tick(); chunk.markDirty(); @@ -213,7 +218,8 @@ public final class ComputerTileEntity extends TileEntity implements ITickableTil } virtualMachine.board.reset(); - virtualMachine.board.installDeviceTree(); + virtualMachine.board.initialize(); + virtualMachine.board.setRunning(true); runner = new ConsoleRunner(virtualMachine); }