aaa6e772a7
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)
16 lines
743 B
Plaintext
16 lines
743 B
Plaintext
sequenceDiagram
|
|
participant UI as MainActivity (save/load button)
|
|
participant Pending as g_pending_save_state / g_pending_load_state
|
|
participant Refresh as video_canvas_refresh (VICE thread)
|
|
participant Trap as interrupt_maincpu_trigger_trap
|
|
participant CPU as 6510core.c DO_INTERRUPT(IK_TRAP)
|
|
|
|
UI->>Pending: saveState(path) / loadState(path) [mutex-guarded]
|
|
Refresh->>Pending: drain pending path next frame
|
|
Refresh->>Trap: schedule save_state_trap / load_state_trap
|
|
CPU->>CPU: EXPORT_REGISTERS()
|
|
CPU->>Trap: run trap function
|
|
Trap->>Trap: machine_write_snapshot() / machine_read_snapshot()
|
|
CPU->>CPU: IMPORT_REGISTERS()
|
|
Note over CPU: reg_pc now matches the saved/restored maincpu_regs.pc
|