From 0f814eb13408a3696bccacc6cac0e65fece9df04 Mon Sep 17 00:00:00 2001 From: ml Date: Sun, 14 Jun 2026 10:04:59 +0200 Subject: [PATCH] Adding a save state panel --- .../C64Engine.kt | 6 + .../MainActivity.kt | 107 ++++++++++++++++++ .../app/src/main/jni/CMakeLists.txt | 4 +- .../app/src/main/jni/vice_jni.c | 88 ++++++++++++-- .../app/src/main/res/layout/activity_main.xml | 11 ++ .../app/src/main/res/values-de/strings.xml | 7 ++ .../app/src/main/res/values/strings.xml | 7 ++ 7 files changed, 221 insertions(+), 9 deletions(-) diff --git a/SchwertUndMagieOnPebbleCompanionApp/app/src/main/java/de/ladkau/schwertundmagieonpebblecompanionapp/C64Engine.kt b/SchwertUndMagieOnPebbleCompanionApp/app/src/main/java/de/ladkau/schwertundmagieonpebblecompanionapp/C64Engine.kt index 98952f0..97b5502 100644 --- a/SchwertUndMagieOnPebbleCompanionApp/app/src/main/java/de/ladkau/schwertundmagieonpebblecompanionapp/C64Engine.kt +++ b/SchwertUndMagieOnPebbleCompanionApp/app/src/main/java/de/ladkau/schwertundmagieonpebblecompanionapp/C64Engine.kt @@ -28,6 +28,12 @@ class C64Engine { /** Eject the disk and hard-reset the C64 to a BASIC ready prompt. */ external fun resetMachine(): Boolean + /** Save a full machine snapshot to [path] (queued to the VICE thread). */ + external fun saveState(path: String): Boolean + + /** Restore a machine snapshot from [path] (queued to the VICE thread). */ + external fun loadState(path: String): Boolean + /** Run the emulator for one video frame (~20 000 CPU cycles). */ external fun runFrame() diff --git a/SchwertUndMagieOnPebbleCompanionApp/app/src/main/java/de/ladkau/schwertundmagieonpebblecompanionapp/MainActivity.kt b/SchwertUndMagieOnPebbleCompanionApp/app/src/main/java/de/ladkau/schwertundmagieonpebblecompanionapp/MainActivity.kt index 326f3c0..4b0c816 100644 --- a/SchwertUndMagieOnPebbleCompanionApp/app/src/main/java/de/ladkau/schwertundmagieonpebblecompanionapp/MainActivity.kt +++ b/SchwertUndMagieOnPebbleCompanionApp/app/src/main/java/de/ladkau/schwertundmagieonpebblecompanionapp/MainActivity.kt @@ -170,6 +170,7 @@ class MainActivity : AppCompatActivity() { } findViewById