Repository navigation
v1.0.7 — where the release notes begin
This is where the curated release notes begin. Everything below was written at once and covers the whole history up to this point, not a single release's worth of change.
Features
BASIC line heat map
New Heat toggle in the BASIC editor toolbar shows a colour-coded gutter (blue to red) indicating how frequently each line executes. Driven by cycle-accurate C++ tracking at every BASIC statement, with smooth decay so lines fade when no longer active.
BASIC trace toggle
New Trace toggle lets you disable current-line highlighting while a BASIC program runs, reducing visual noise for long-running programs.
BASIC editor improvements
Statement hover highlighting, live current-line tracking while running, tokenizer fixes, and 30fps refresh rate for smoother updates.
Window z-index persistence
Window stacking order is now saved and restored between sessions, so your window layout is exactly as you left it.
Click-to-focus windows
Clicking an unfocused window now only brings it to front — buttons and inputs don't activate until the window has focus.
Window switcher completeness
The window switcher (Ctrl+`) now includes all windows: Hard Drives, File Explorer, and Trace Panel were missing.
Expansion Slots redesign
Redesigned the Expansion Slots window with a drag-and-drop card tray and motherboard layout for intuitive slot management.
Joystick window redesign
Redesigned the joystick window with a circular pad, gauge bars, and LED-style buttons for a more tactile feel.
Update badge on Help button
Service worker updates now show a badge on the Help button instead of auto-reloading the page.
BASIC tokenizer in WASM
Moved the Applesoft BASIC tokenizer from JavaScript to C++ WebAssembly for faster and more accurate tokenization. Fixed detokenizer spacing for numbers and variables.
Assembler symbol integration
Assembler symbols are now automatically loaded into the CPU debugger, so breakpoints and disassembly show your label names. Added a Debug button to the assembler toolbar.
Instruction Trace window
New debug window that records a full disassembled instruction trace with auto-scroll, clear, and column-aligned display.
Disk Library
Added a Disk Library window for one-click loading of bundled disk images, cached locally in IndexedDB for instant access.
SmartPort hard drive UI
SmartPort Drives window now uses a side-by-side layout with drive separators. Added toast notifications and slot validation.
Browse button on floppy drives
Floppy disk drives now have a Browse button that opens the File Explorer for the inserted disk.
Custom confirm dialogs
Replaced all native browser confirm() dialogs with styled in-app modals that match the emulator theme.
CSS bundling via Vite
Moved all CSS into src/css/ so Vite can bundle and minify stylesheets for production builds.
65C02 assembler editor
Full-featured assembler with syntax highlighting, gutter line numbers, breakpoints, validation, error display, ROM routine reference panel, and file save/load.
BASIC debugger
Added breakpoints, statement-level stepping, variable inspection and editing, runtime error detection, and line highlighting for Applesoft BASIC programs.
SmartPort expansion card
New SmartPort hard drive controller supporting two ProDOS block devices with a self-built ROM. Includes pulsing LED activity indicator and hard drive file browsing.
Light and dark themes
Added light, dark, and system-follow theme support. All accent colors are derived from the six-stripe Apple rainbow logo palette.
Save States window
New save states manager with an autosave slot and five manual save slots, including high-res hover previews of each state.
Mouse Interface Card
Apple Mouse Interface Card emulation using the AppleWin PIA command protocol, with a dedicated debug window showing PIA registers and position.
Per-scanline raster rendering
Video output is now rendered scanline-by-scanline with sub-scanline precision and a 2-cycle pipeline delay, enabling accurate raster bar effects.
Mockingboard improvements
Unified channel-centric debug window with inline waveforms, level meters, per-channel mute, and MAME-aligned PSG audio engine.
Window management
Added window switcher overlay (Ctrl+`), Option+Tab cycling, focused window highlighting, viewport-lock for the screen, and auto-hiding toolbar in full-page mode.
Canvas-based disk surface
Replaced disk drive PNG images with real-time canvas-rendered disk surfaces showing track position and read/write activity.
Core logic moved to WASM
Migrated debug evaluation, filesystem parsing, BASIC detokenization, screen text extraction, and input handling from JavaScript to C++ WebAssembly.
Beam position breakpoints
CPU debugger can now break at specific scanline and horizontal beam positions, with wildcard support and a multi-beam tab panel.
Dev menu
New Dev menu grouping the Assembler and BASIC Program windows, with a dedicated category in the window switcher.
Color bleed CRT effect
Added a color bleed shader parameter for more authentic CRT monitor appearance.
Merlin source viewer
File Explorer can now display Merlin assembler source files from disk images.
Expansion card architecture
Added a pluggable expansion card system matching real Apple IIe hardware, with an Expansion Slots configuration UI for managing cards in slots 1-7.
Thunderclock Plus
ProDOS-compatible real-time clock card that provides the current date and time to software. Configurable for slot 5 or 7.
Dropdown menus
Replaced header buttons with grouped dropdown menus (File, View, Debug, Dev, Help) for a cleaner toolbar.
Emulation speed multiplier
Adjustable speed control for fast-forwarding through slow operations like BASIC program loading and disk access.
Mockingboard waveform scope
Split Mockingboard window into detail and scope views with real-time waveform visualization and channel muting.
Stereo audio output
Mockingboard now outputs in stereo with proper PSG channel separation between left and right speakers.
Viewport-lock for screen
Screen window can be locked to fill the browser viewport, with proper aspect ratio enforcement.
Window option persistence
All window toggle states, view modes, and mute settings are now saved between sessions via localStorage.
Mockingboard sound card
Dual AY-3-8910 PSG chips with VIA 6522 timers, providing stereo music and sound effects for supported software.
BASIC Program window
Load Applesoft BASIC programs directly into emulator memory with IntelliSense autocomplete for keywords, variables, and line numbers.
Drag-to-move
Monitor and disk drives can now be repositioned by dragging, with viewport constraint to keep everything on screen.
Recent disks
Per-drive recent disks dropdown menus with clear option, so frequently used disk images are always one click away.
Disk persistence
Inserted disk images and any modifications are preserved across browser sessions automatically.
Joystick window
Floating joystick window for paddle and joystick input with snap-back-to-center behavior.
CRT shader enhancements
Added rounded corners, edge highlights, and color fringing toggle for more realistic CRT monitor appearance.
Help system
Comprehensive help window (F1) with documentation, plus release notes page with automatic update checking.
File Explorer
Browse the contents of DOS 3.3 and ProDOS disk images, view BASIC listings with syntax formatting, and disassemble binary files with recursive descent flow analysis.
C++ disassembler
New disassembler running in WebAssembly with virtual scrolling, categorized symbols, clickable jump targets, and tooltips.
Monochrome display modes
Green, amber, and white phosphor display modes that bypass NTSC artifact coloring for a classic terminal look.
Debug window system
Movable, resizable debug windows with viewport constraints, minimum size enforcement, and state persistence. Includes Memory Map, heat map, and soft switch monitor.
Display settings window
Converted display settings to a movable window with improved layout, brightness, contrast, saturation, and CRT effect controls.
Text selection
Select and copy text directly from the emulator screen with Ctrl+C support and proper Apple II screen code conversion.
Full-page mode
Expand the emulator to fill the entire browser window, exit with Ctrl+Escape.
Mobile layout
Responsive layout with virtual keyboard support for mobile devices.
PWA support
Progressive Web App with offline functionality, service worker caching, and an update notification button.
UK/US character set
Toggle between UK and US character ROMs with persistent setting.
Sound controls
Volume slider, mute toggle, and disk drive seek sound with persistent settings.
State persistence
Auto-save emulator state on exit and restore on reload, including all window positions and sizes.
Initial release
Apple //e emulator with cycle-accurate 65C02 CPU, audio-driven frame sync at 60Hz, Disk II controller with DSK/DO/PO/NIB/WOZ support, WebGL rendering, and CRT shader effects.
Fixes
Disk drives window sizing
Fixed disk drives window being too small for new users with no saved state.
Agent connection
Fixed app connection to the MCP agent server.
SmartPort ProDOS boot
Fixed SmartPort card breaking ProDOS floppy boot and slow agent text input speed.
SmartPort crash on empty drive
Fixed a crash when booting with a SmartPort card installed but no disk image loaded.
Window state persistence
Fixed slot config and disk drives window state not persisting across browser refresh.
Slot config UX
Merged the slot config warning into the Apply button and fixed window sizing issues.
Window centering
Windows now center in the viewport when no saved position exists instead of appearing at origin.
CRT static noise
Reduced CRT static noise block size for a finer grain effect.
Warm reset behavior
Warm reset (Ctrl+Reset) now resets soft switches and stops the disk motor like real hardware, while preserving memory contents.
Disk II write support
Fixed Disk II write failures by correctly converting the level signal to flux transitions.
Disk drives window layout
Fixed Browse button styling, widened the drives window to fit content, and constrained it to the viewport after resize.
Cold reset cleanup
Clearing stale frame sync and BASIC state on cold reset to prevent ghost state from previous sessions.
Disk II accuracy
Replaced the nibble-at-a-time disk model with a P6 ROM-driven Logic State Sequencer for cycle-accurate disk emulation.
Speaker audio quality
Fixed speaker pitch drift on subsequent beeps and audio mixing clipping when speaker and Mockingboard play simultaneously.
AY-3-8910 sound chip
Fixed noise LFSR polynomial, envelope timing, period-zero handling, PSG phase cancellation, and aligned output with MAME reference.
Double Low-Res rendering
Fixed color rendering using wrong palette and missing auxiliary memory nibble rotation.
Paste performance
Replaced slow keyboard-paste BASIC loading with instant direct memory insertion. Fixed paste queue setTimeout violations.
Theme consistency
Fixed hardcoded dark-theme colors in CPU Debugger and BASIC Program windows.
VIA 6522 timer interrupts
Fixed timer interrupt handling on mode transitions and ensured timers always decrement for proper Mockingboard detection.
Mockingboard audio clipping
Fixed audio timing, clipping, and output normalization issues in the Mockingboard sound engine.
PSG register timing
Added timestamped PSG register writes for cycle-accurate audio, with proper bipolar AC-coupled output.
Window positioning
Constrained all windows to visible viewport bounds and computed sensible default positions.
NTSC fringing in monochrome
Monochrome display modes now correctly skip NTSC color artifact rendering.
65C02 CPU compliance
Fixed CPU emulation bugs discovered by Klaus Dormann's 65C02 functional test suite.
Double Lo-Res colors
Corrected the color palette mapping for Double Lo-Res graphics mode.
Disk II stepper motor
Fixed stepper motor timing to match real hardware quarter-track behavior.
Hi-Res color rendering
Fixed alternating fill patterns for continuous colored lines and artifact color accuracy.
DSK disk corruption
Fixed a bug that corrupted DSK disk images during write operations.
Keyboard and DHGR
Fixed keyboard input issues and Double Hi-Res rendering problems.
Memory banking
Fixed Language Card write behavior, double-read requirement, 80STORE banking, and expansion ROM space handling ($C800-$CFFF).
Soft switches
Fixed read side effects for $C000-$C00F, INTCXROM handling, and comprehensive soft switch support.
WOZ disk timing
Fixed WOZ disk write/read timing and added disk image export functionality.
Hi-Res and Double Hi-Res
Fixed DHR mode detection, 80-column text rendering, and hi-res graphics artifact colors.
Character ROM
Fixed Enhanced character ROM rendering and flash character display.
Backfilled: this release predates the repository's use of GitHub Releases. The tag points at the commit that set this version, and the notes are the entries that release added to Help > Release Notes in the app.