- Cross-compile nibtools for Android NDK; download all 8 episode disks
from the Internet Archive C64 Preservation Project as NBZ and convert
to G64 via JNI (throwaway-pthread to contain nibconv's exit() calls)
- Bundle manual transcription as APK asset; 📖 button opens scrollable
viewer with Seite→Absatz→Zeile→Wort lookup hierarchy documented
Commodore ROMs are copyrighted and can no longer ship inside the APK.
MainActivity now detects missing ROMs on first launch and blocks
startup with a dialog offering two paths: pick files via the system
file picker, or download the official VICE 3.8 tarball and extract the
four ROMs from it client-side (minimal USTAR reader, no extra deps).
- Drop the extractViceRoms Gradle task and asset bundling; add
res/extract_roms.sh for local sideloading during development instead
- gitignore keystores/keystore.properties ahead of a signed release
- Move architecture.md into docs/, refresh it for the screen-mirroring
and watch-input additions, and add accompanying Mermaid diagrams
- Add docs/debugging.md and docs/publish.md (Play Store release notes,
ROM-import compliance rationale)
Assets (ROMs and disk images) now live in getExternalFilesDir, making
them accessible via USB file transfer and any file manager app without
adb or root.
- "Import ROMs" button walks through kernal/basic/chargen picks in
sequence and restarts the emulator when done
- "Import Disks" button opens a multi-select picker; files are saved
as SCHWUM<N><P>.D64 (uppercased for consistent lookup)
- 2×4 episode grid (1A–4B) lights up each button as its disk image
becomes available; tapping loads that disk into drive 8
Cross-compiles VICE 3.8 headless for ARM64 and x86_64 as part of the
Android Studio build (Gradle buildVice task + build_vice.sh). The JNI
bridge (vice_jni.c) renders frames into a shared framebuffer read by
C64DisplayView, and forwards key events from C64KeyboardView to VICE's
keyboard matrix. Without ROM files the app shows a placeholder blue
screen; with ROMs and a .d64 disk image the full C64 emulator runs.