Skip to content

v1.0.7 — where the release notes begin

Choose a tag to compare

@mikedaley mikedaley released this 10 Sep 18:25

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.