From e0d1948bfcfb519c4610fe475231b66fb151e8e8 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Tue, 3 Jan 2023 00:50:48 +0900 Subject: [PATCH] emulator: malloc viewer --- .../src/net/torvald/tsvm/TerranBASIC.java | 7 +- terranmon.txt | 63 +++++---- .../src/net/torvald/tsvm/DummyMenu.kt | 24 ++++ .../src/net/torvald/tsvm/EmuMenu.kt | 1 + .../src/net/torvald/tsvm/MMUMenu.kt | 123 ++++++++++++++++++ .../src/net/torvald/tsvm/ProfilesMenu.kt | 9 +- .../src/net/torvald/tsvm/VMEmuExecutable.kt | 43 ++++-- 7 files changed, 235 insertions(+), 35 deletions(-) create mode 100644 tsvm_executable/src/net/torvald/tsvm/DummyMenu.kt create mode 100644 tsvm_executable/src/net/torvald/tsvm/MMUMenu.kt diff --git a/TerranBASICexecutable/src/net/torvald/tsvm/TerranBASIC.java b/TerranBASICexecutable/src/net/torvald/tsvm/TerranBASIC.java index 8a28796..1a8c26c 100644 --- a/TerranBASICexecutable/src/net/torvald/tsvm/TerranBASIC.java +++ b/TerranBASICexecutable/src/net/torvald/tsvm/TerranBASIC.java @@ -5,6 +5,8 @@ import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration; import com.badlogic.gdx.graphics.glutils.ShaderProgram; import net.torvald.tsvm.peripheral.*; +import java.util.HashMap; + public class TerranBASIC { public static String appTitle = "TerranBASIC"; @@ -25,7 +27,10 @@ public class TerranBASIC { appConfig.setWindowedMode(WIDTH, HEIGHT); - VM tbasvm = new VM("./assets", 64 << 10, new TheRealWorld(), new VMProgramRom[]{TBASRelBios.INSTANCE}, 2); + HashMap watchdogs = new HashMap<>(); + watchdogs.put("TEVD_SYNC", TevdSyncWatchdog.INSTANCE); + + VM tbasvm = new VM("./assets", 64 << 10, new TheRealWorld(), new VMProgramRom[]{TBASRelBios.INSTANCE}, 2, watchdogs); EmulInstance tbasrunner = new EmulInstance(tbasvm, "net.torvald.tsvm.peripheral.ReferenceGraphicsAdapter", "assets/disk0", 560, 448); new Lwjgl3Application(new VMGUI(tbasrunner, WIDTH, HEIGHT), appConfig); } diff --git a/terranmon.txt b/terranmon.txt index a409802..b4543a0 100644 --- a/terranmon.txt +++ b/terranmon.txt @@ -378,59 +378,76 @@ METADATA - uint16 HEIGHT uint16 FPS (0: play as fast as can) uint32 NUMBER OF FRAMES - uint16 PACKET TYPE + uint16 GLOBAL PACKET TYPE (will be deprecated; please use 255,0) byte[12] RESERVED - Packet Type Low Byte: - 0: 256-Colour frame - 1: 256-Colour frame with palette data - 2: 4096-Colour frame (stored as two byte-planes) - 4: iPF no-alpha indicator (see iPF Type Numbers for details) - 5: iPF with alpha indicator (see iPF Type Numbers for details) - 16: Series of JPEGs - 18: Series of PNGs - 20: Series of TGAs - 21: Series of TGA/GZs - 255: Every frame specifies the type + Packet Types: +