Adding a help button
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
ÜBER DIE APP
|
||||
────────────
|
||||
Diese App führt die klassische deutsche C64-Rollenspielreihe Schwert und
|
||||
Magie über den VICE-C64-Emulator aus. Eine gekoppelte Pebble-Watch-App
|
||||
kann den Spielbildschirm anzeigen und Tastendrücke per Bluetooth übertragen.
|
||||
|
||||
|
||||
MENÜ ☰
|
||||
───────
|
||||
Öffnet das linke Seitenmenü zur Verwaltung von Disketten und Einstellungen.
|
||||
|
||||
|
||||
SPIELFOLGEN (DISKETTEN)
|
||||
───────────────────────
|
||||
Auf eine Folge tippen, um das Spiel zu laden und automatisch zu starten.
|
||||
Der C64 wird zurückgesetzt und startet direkt in die gewählte Episode.
|
||||
B-Seiten (Folge 2, 4, 6, 8) sind erst verfügbar, nachdem die zugehörige
|
||||
A-Seite in dieser Sitzung mindestens einmal gespielt wurde.
|
||||
|
||||
|
||||
HELDENDISKETTEN
|
||||
───────────────
|
||||
Persönliche Speicherdisketten, die ohne Maschinenneustart gewechselt werden.
|
||||
Mit „Neu" eine leere Heldendiskette erstellen. Die Heldendiskette speichert
|
||||
den Charakter über alle acht Folgen hinweg — gut aufbewahren!
|
||||
|
||||
|
||||
RESET
|
||||
─────
|
||||
Wirft die aktuelle Diskette aus und setzt den C64 kalt auf den BASIC-Prompt
|
||||
zurück. Nach einem Reset starten Spieldisketten beim nächsten Antippen
|
||||
wieder automatisch.
|
||||
|
||||
|
||||
TON
|
||||
───
|
||||
Schaltet die SID-Audioausgabe ein oder aus. Standardmäßig deaktiviert.
|
||||
|
||||
|
||||
DISKETTEN IMPORTIEREN
|
||||
─────────────────────
|
||||
Importiert .D64-Disk-Images aus dem Gerätespeicher. Alle vier Images
|
||||
(SCHWUM1–SCHWUM4) müssen importiert werden, bevor die Folgen verfügbar sind.
|
||||
|
||||
|
||||
BILDSCHIRMTASTATUR
|
||||
──────────────────
|
||||
Einmal auf SHF tippen, um die Umschalttaste dauerhaft zu aktivieren (Taste
|
||||
leuchtet auf). Erneut auf SHF tippen zum Deaktivieren. Alle anderen Tasten
|
||||
reagieren normal auf Berühren und Loslassen.
|
||||
|
||||
|
||||
ARBEITSABLAUF
|
||||
─────────────
|
||||
1. .D64-Disk-Images über „Disketten importieren" laden
|
||||
2. Eine Spieldiskette antippen — das Spiel startet automatisch
|
||||
3. Wenn das Spiel nach der Heldendiskette fragt, im Menü eine Held-
|
||||
Diskette auswählen (Heißtausch, kein Reset)
|
||||
4. Nach Abschluss die Spieldiskette im Menü wieder einlegen
|
||||
(ebenfalls Heißtausch)
|
||||
5. Reset nur verwenden, wenn ein vollständiger Neustart nötig ist
|
||||
|
||||
|
||||
────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
SCHWERT UND MAGIE — GESCHICHTE
|
||||
───────────────────────────────
|
||||
Schwert und Magie ist eine Reihe von acht Rollenspielen, die von der
|
||||
German Design Group (GDG) entwickelt und zwischen 1989 und 1992 von
|
||||
CP Verlag für den Commodore 64 veröffentlicht wurde.
|
||||
|
||||
In einer mittelalterlichen Fantasiewelt folgt die Reihe einem Helden,
|
||||
dessen Fortschritt auf einer persönlichen Diskette gespeichert und über
|
||||
alle acht Folgen mitgeführt wird. Je zwei Episoden befinden sich auf einer
|
||||
doppelseitigen Diskette: die A-Seite startet die erste, die B-Seite die
|
||||
zweite Episode.
|
||||
|
||||
Die Spiele zeichneten sich durch aufwendige Grafiken, atmosphärische
|
||||
SID-Musik und eine persistente gemeinsame Spielwelt aus — zur damaligen
|
||||
Zeit eine Besonderheit auf Heimcomputern. Ein einziger Held konnte mit
|
||||
allen erworbenen Fähigkeiten und Ausrüstungsgegenständen nahtlos von
|
||||
Episode zu Episode übertragen werden, was der Reihe den Charakter einer
|
||||
durchgehenden Kampagne gab.
|
||||
|
||||
Die Serie wurde zu einem geliebten Klassiker in der deutschsprachigen
|
||||
C64-Gemeinschaft und gilt als Meilenstein der frühen deutschen
|
||||
Spieleentwicklung.
|
||||
|
||||
Die acht Folgen:
|
||||
|
||||
1. Das geheimnisvolle Kraut
|
||||
2. Der unheimliche Tempel
|
||||
3. Das Piratenhaus
|
||||
4. Die Burg des Magiers
|
||||
5. Das Haus des Vampirs
|
||||
6. Der Turm des Todes
|
||||
7. Unter Wasser
|
||||
8. Insel der Wunder
|
||||
@@ -0,0 +1,95 @@
|
||||
ABOUT
|
||||
─────
|
||||
This app runs the classic German C64 RPG series Schwert und Magie through
|
||||
the VICE C64 emulator. A paired Pebble watchapp can display the game screen
|
||||
and relay button presses over Bluetooth.
|
||||
|
||||
|
||||
DRAWER ☰
|
||||
─────────
|
||||
Open the left drawer to manage disks and settings.
|
||||
|
||||
|
||||
EPISODE DISKS (DISKETTEN)
|
||||
─────────────────────────
|
||||
Tap an episode to load and autostart the game. The C64 resets and boots
|
||||
directly into the selected episode. B-side episodes (Folge 2, 4, 6, 8) are
|
||||
only available after their A-side has been played at least once in this
|
||||
session.
|
||||
|
||||
|
||||
HERO DISKS (HELDEN-DISKETTEN)
|
||||
──────────────────────────────
|
||||
Personal save disks that are hot-swapped without resetting the machine.
|
||||
Tap "Neu" to create a blank hero disk. Your hero disk stores your character
|
||||
across all eight episodes — keep it safe.
|
||||
|
||||
|
||||
RESET
|
||||
─────
|
||||
Ejects the current disk and power-cycles the C64 to the BASIC prompt.
|
||||
After a reset, episode disks autostart again when tapped.
|
||||
|
||||
|
||||
SOUND
|
||||
─────
|
||||
Toggles SID audio output. Off by default.
|
||||
|
||||
|
||||
IMPORT DISKS
|
||||
────────────
|
||||
Import .D64 disk image files from device storage. All four disk images
|
||||
(SCHWUM1–SCHWUM4) must be imported before their episodes become available.
|
||||
|
||||
|
||||
VIRTUAL KEYBOARD
|
||||
────────────────
|
||||
Tap SHF once to lock Shift on (the key stays highlighted). Tap SHF again
|
||||
to release. All other keys fire on touch and release normally.
|
||||
|
||||
|
||||
WORKFLOW
|
||||
────────
|
||||
1. Import your .D64 disk images via Import Disks
|
||||
2. Tap an episode disk — the game autostarts
|
||||
3. When the game asks for your hero disk, open the drawer and select a
|
||||
Held disk (hot-swap, no reset)
|
||||
4. When done with the hero disk, swap back to the episode disk from the
|
||||
drawer (also a hot-swap)
|
||||
5. Use Reset only when you need a clean cold start
|
||||
|
||||
|
||||
────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
SCHWERT UND MAGIE — HISTORY
|
||||
────────────────────────────
|
||||
Schwert und Magie (Sword and Magic) is a series of eight role-playing games
|
||||
developed by German Design Group (GDG) and published by CP Verlag between
|
||||
1989 and 1992 for the Commodore 64.
|
||||
|
||||
Set in a medieval fantasy world, the series follows a hero whose progress
|
||||
is saved on a personal floppy disk and carried across all eight episodes.
|
||||
Each pair of episodes ships on one double-sided disk, with the A-side
|
||||
launching the first episode and the B-side continuing the story.
|
||||
|
||||
The games were notable for their richly drawn graphics, atmospheric SID
|
||||
music, and a persistent shared world — a rarity on home computers of the
|
||||
era. A single hero character, with all earned skills and equipment, could
|
||||
be transferred seamlessly from one episode to the next, giving the series
|
||||
the feel of a continuous campaign rather than isolated adventures.
|
||||
|
||||
The series became a beloved classic in the German-speaking C64 community
|
||||
and stands as a landmark of early German game development, remembered
|
||||
fondly alongside other GDG titles for its ambition and production quality.
|
||||
|
||||
The eight episodes:
|
||||
|
||||
1. Das geheimnisvolle Kraut (The Mysterious Herb)
|
||||
2. Der unheimliche Tempel (The Eerie Temple)
|
||||
3. Das Piratenhaus (The Pirate House)
|
||||
4. Die Burg des Magiers (The Wizard's Castle)
|
||||
5. Das Haus des Vampirs (The House of the Vampire)
|
||||
6. Der Turm des Todes (The Tower of Death)
|
||||
7. Unter Wasser (Underwater)
|
||||
8. Insel der Wunder (Island of Wonders)
|
||||
+36
@@ -147,6 +147,8 @@ class MainActivity : AppCompatActivity() {
|
||||
drawerLayout.openDrawer(GravityCompat.START)
|
||||
}
|
||||
|
||||
findViewById<Button>(R.id.btn_help).setOnClickListener { showHelp() }
|
||||
|
||||
findViewById<Button>(R.id.btn_import_disks).setOnClickListener {
|
||||
launchPicker(diskPickerLauncher, "Select SCHWUM disk images", multiSelect = true)
|
||||
}
|
||||
@@ -458,6 +460,40 @@ class MainActivity : AppCompatActivity() {
|
||||
|
||||
// ---- helpers ------------------------------------------------------------
|
||||
|
||||
private fun showHelp() {
|
||||
fun load(german: Boolean) = try {
|
||||
assets.open(if (german) "help_de.md" else "help_en.md").bufferedReader().readText()
|
||||
} catch (e: Exception) { "Help text unavailable." }
|
||||
|
||||
var german = true
|
||||
|
||||
val tv = android.widget.TextView(this).apply {
|
||||
text = load(true)
|
||||
typeface = android.graphics.Typeface.MONOSPACE
|
||||
textSize = 12f
|
||||
setTextColor(Color.parseColor("#DDDDDD"))
|
||||
val p = (16 * resources.displayMetrics.density).toInt()
|
||||
setPadding(p, p, p, p)
|
||||
}
|
||||
val scroll = android.widget.ScrollView(this).apply {
|
||||
addView(tv)
|
||||
setBackgroundColor(Color.parseColor("#1A1A2E"))
|
||||
}
|
||||
val dialog = AlertDialog.Builder(this)
|
||||
.setTitle("Schwert und Magie auf Pebble")
|
||||
.setView(scroll)
|
||||
.setPositiveButton("OK", null)
|
||||
.setNeutralButton("English", null)
|
||||
.show()
|
||||
|
||||
dialog.getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener {
|
||||
german = !german
|
||||
tv.text = load(german)
|
||||
scroll.scrollTo(0, 0)
|
||||
(it as android.widget.Button).text = if (german) "English" else "Deutsch"
|
||||
}
|
||||
}
|
||||
|
||||
private fun appendLog(entry: String) {
|
||||
val ts = timeFormat.format(Date())
|
||||
tvLog.text = "[$ts] $entry\n${tvLog.text}"
|
||||
|
||||
@@ -50,6 +50,16 @@
|
||||
android:layout_width="12dp"
|
||||
android:layout_height="12dp"
|
||||
android:layout_marginEnd="4dp" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_help"
|
||||
style="?attr/materialButtonOutlinedStyle"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:minWidth="0dp"
|
||||
android:padding="0dp"
|
||||
android:text="?"
|
||||
android:textSize="16sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- C64 display (320×200, scaled with correct aspect ratio) -->
|
||||
|
||||
Reference in New Issue
Block a user