Skip to content

LinApple v3.0-beta-3

Latest

Choose a tag to compare

@github-actions github-actions released this 05 Sep 05:21
· 527 commits to master since this release
4ee91a4

LinApple 3.0 Beta 3 introduces a feature-complete Text User Interface (TUI) frontend with Unicode graphics rendering and synchronized audio playback, native Enhanced Apple //e Mini-Assembler execution, built-in system and expansion card ROM generation, real-time Applesoft BASIC Live-Sync, and significant emulation stability and safety fixes across all platforms.

  • Full-Featured Text UI Frontend (linapple-tui):

    • Run the full Apple II emulator inside standard terminal windows (SSH, console, or terminal emulators) without requiring X11, Wayland, or graphical window managers.
    • Smart Terminal Rendering: High-fidelity rendering mode leveraging Unicode half-blocks and Braille glyphs for text and high-resolution graphics.
    • Synchronized Terminal Audio: Greatly improved audio playback quality in terminal mode with low-latency timing synchronization for speaker and Mockingboard sound.
    • Complete Hotkey Parity: Full graphical frontend feature parity directly in the terminal, including F1 help overlay, F3/F4 floppy insert, Shift+F3/F4 hard disk insert, F5 drive swapping, F7 debugger, F8 ANSI screenshot exports, F9 video mode cycling, F10/F11 save states, and Scroll Lock turbo speed toggle.
    • Signal-safe terminal cleanup to cleanly restore cursor and terminal modes upon exit.
  • Real-Time Applesoft BASIC Live-Sync (--basic-sync <file>):

    • Write Apple II BASIC programs in modern host text editors and IDEs (VS Code, Vim, Emacs, Sublime, etc.) and see changes instantly synchronize bidirectionally into emulator memory in real time while the machine is running.
    • Changes typed into the Apple II prompt are also written back to your host file automatically.
    • Flexible Line Numbering Modes (--basic-line-mode):
      • Explicit Mode (Default): Standard BASIC format where every line starts with a number (10 HOME, 20 PRINT).
      • Positional Mode: Modern code style without line numbers; text file line numbers map 1:1 directly to BASIC line numbers.
  • Built-In System & Expansion ROMs:

    • All canonical system and expansion card ROMs (Motherboard ROMs, Disk II, Super Serial Card, Mockingboard, Mouse Interface, Parallel Printer, and Clock) are now embedded directly in the binary—zero external ROM files required out of the box.
    • Added support and international character sets for Apple II J-Plus and third-party clones (Base64A, Pravets 82/8C/8M, TK3000 //e).
    • Added --list-roms and --list-hardware CLI options for easy inspection.
  • Emulation & Hardware Enhancements:

    • 65C02 CPU Conformance: Verified against Dormann extended opcode conformance test suites, ensuring accurate CMOS instruction and Decimal flag handling on hardware interrupts.
    • First-Run Master Disk Auto-Boot: Automatically inserts and boots Master.dsk on first run if no disks are specified.
    • Analog Joystick & Paddle Calibration: Added paddle trim controls (PDL X-Trim, PDL Y-Trim) to fine-tune center calibration.
    • Modernized Configuration (linapple.conf): Completely restructured configuration file with clear INI sections, explicit default values, and concise documentation.
  • Enhanced Apple //e Mini-Assembler: Fixed internal ROM bank dispatch, allowing the Enhanced Apple //e ROM Mini-Assembler (! from CALL -151) to assemble and step code natively without errors or crashes.

  • File & State Browser Navigation: Fixed parent directory (..) navigation across all SDL frontends so navigating to parent and root folders works reliably.

  • Window Resizing & Teardown: Fixed resource handling in window resize callbacks across SDL frontends to prevent crashes and resource leaks during window manipulation or minimize.

  • SmartPort Data Buffer Boundary Safety: Added bounds protection on SmartPort data buffer registers ($C0xF8) and guarded peripheral dispatch to prevent guest software from triggering host crashes.

  • Disk Format Hardening: Added boundary validation across bitstream WOZ v2, 2MG, and IIE disk image parsers.

  • Additional stability, memory safety, and performance improvements across all subsystems.