From 61a08e7f3d96db30d0200cce17f7ff94675d697a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Tue, 27 Oct 2020 21:29:33 +0100 Subject: [PATCH] Add generic system controller and custom controller for R5 to support power-off/reset. --- src/main/java/li/cil/oc2/client/gui/RISCVTestScreen.java | 2 +- .../java/li/cil/oc2/common/tile/ComputerTileEntity.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) 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); }