A2pix/History

From kJams Wiki
Jump to navigation Jump to search

3.5 April 2026

Ground-up rewrite from Carbon/C to Qt 6 / C++17. The core Apple II bit-level rendering engine has been preserved faithfully; everything around it has been rebuilt with a modern cross-platform toolkit.

Platform

  • runs on Windows for the first time (native MSVC build with Qt 6)
  • macOS Universal binary (Apple Silicon + Intel), requires macOS 13+
  • build system: qmake with shared .pri + per-platform .pro files

Rendering

  • core Apple II bit-level rendering engine preserved faithfully
  • all 4 rendering engines preserved (Ellsworth, Laz Double, Laz Sharp, By the Book)
  • all 8 color palettes + 3 monochrome palettes preserved
  • palettes extracted from Mac resource fork into palettes.json
  • rendering pipeline simplified (300+ lines to ~50 lines, QImage direct pixel access)

UI

  • JSON-driven menu system (declarative, built at runtime)
  • dockable color swatch panel (replaces old Mac floating palette)
  • scroll area with dark offstage background
  • about box with bundled Apple II .ttf font
  • status bar for feedback messages
  • window position and size remembered between sessions

File Handling

  • save as PNG replaces PICT
  • save as DHGR/HGR binary preserved
  • Open Recent menu (up to 10 files)
  • remembers last-used open/save directories
  • drag and drop file opening
  • auto-reopens most recent file on launch
  • all Apple II picture formats supported (HGR, DHGR/DazzleDraw, Beagle Bros)

Drawing / Editing

  • mouse drawing in 140px and 560px modes preserved
  • convert HGR to DHGR
  • all keyboard shortcuts preserved

New Features

  • text screen editor with MouseText support
  • Apple IIc boot simulation startup screen with sound effects
  • CLI --test mode for automated rendering/regression testing
  • preferences via QSettings (plist on Mac, registry on Windows)
  • Windows packaging via windeployqt with custom folder icon and taskbar integration
  • code signing support for Windows builds

Under the Hood

  • source consolidated: ~30 files (4,540 lines) to 8 .cpp/.h (2,712 lines) + palettes.json
  • C++17 (was C with some C++)
  • Qt 6 Widgets (was Mac Carbon Toolbox)

Retired

  • ProDOS disk image creation
  • batch conversion
  • save as PICT
  • Photoshop plug-ins
  • Apple Events rendering API
  • speed test
  • "By the Book width matches Laz" option
  • QuickDraw area sampling
  • 68k/Classic Mac OS support

3.1b2 December 20, 2015

  • text screens can now also be made with plain text files, but you kinda need to use SheepShaver with MacOS 9 to edit them (cuz the font and keyboard layout are only working there)
  • 80 Column Mode is back
  • Removed "Use More Memory with Double Size + ARC", cuz who cares, we always use more memory now
  • Removed "Use QuickDraw Area Sample", now we always use it, it's great
  • Removed "Use New Pencil Method", it's always used
  • made this web site
  • removed a bunch of old dead code
  • 560 Mode (thin dots when drawing, good for Black and White) is now saved in prefs
  • windows no longer keep un-selecting
  • fixed extra "Quit" menu items
  • the app is now code-signed

3.1b1 December 19, 2015

  • updated to work on modern MacOS (10.11), should work on older MacOS too, back to 10.4
  • real prefs file (no longer stored in resource fork of app)
  • fixed font problem by using TrueType font. (note: 80 Column mode not supported)

Previous

Click here for previous history