BitPast is a modern, native macOS application for converting images into authentic retro computer graphic formats including Apple II, Apple IIgs, BBC Micro, Commodore 64, VIC-20, ZX Spectrum, Amstrad CPC, Plus/4, Atari 800, Atari ST, Amiga 500, Amiga 1200, IBM PC, MSX, and TRS-80 Color Computer.
- Drag & Drop: Drag multiple images directly from Finder or the web.
- Batch Processing: Load dozens of images into a grid browser and process them one by one.
- Live Preview: See changes instantly as you adjust sliders for dithering, contrast, and color matching.
- Zoom & Pan: Inspect every single pixel with a high-performance zoomable preview.
Powered by b2d, supporting the full range of classic graphics modes:
- DHGR (Double Hi-Res): 140x192 (16 colors) or 560x192 (Monochrome).
- HGR (Hi-Res): 280x192 (6 colors).
- LGR / DLGR: Lo-Res and Double Lo-Res block graphics.
- Output:
.BINfiles ready for hardware.
Powered by a native Swift engine featuring advanced color quantization:
- 3200 Mode (Brooks Format): Up to 3200 unique colors using per-scanline palettes.
- 256 Colors (16 Palettes): Standard SHR format with intelligent palette grouping.
- 320x200 (16 Colors): Classic Super Hi-Res with single palette.
- 640x200 Modes: 4-color, Enhanced, and Desktop variants.
- Output:
.SHRand.3200files.
Acorn BBC Micro graphics with 8-color palette:
- Mode 0: 640ร256, 2 colors (high-resolution).
- Mode 1: 320ร256, 4 colors from 8-color palette.
- Mode 2: 160ร256, 8 colors (full palette).
- Mode 4: 320ร256, 2 colors (compact memory).
- Mode 5: 160ร256, 4 colors (compact memory).
- 8-color fixed palette (Black, Red, Green, Yellow, Blue, Magenta, Cyan, White).
- Output:
.bbc(raw screen memory).
Full VIC-II graphics support:
- HiRes Mode: 320ร200, 2 colors per 8ร8 character cell.
- Multicolor Mode: 160ร200, 4 colors per 4ร8 character cell.
- PETSCII Mode: 40ร25 character-based graphics using PETSCII charset.
- 16-color VICE/Pepto palette.
- Output:
.art(Art Studio),.kla(Koala Painter),.prg(PETSCII executable).
Character-based graphics with full color support:
- HiRes Mode: 176ร184, 2 colors per 8ร8 character cell.
- LowRes Mode: 88ร184, 4 colors per 4ร8 cell (double-wide pixels).
- 16-color VIC-20 palette.
- Output:
.prg(self-displaying executable).
Attribute-based graphics with authentic color clash:
- 256ร192 resolution with 8ร8 attribute cells.
- 2 colors per cell (ink + paper) from 15-color palette.
- 8 colors ร 2 brightness levels.
- Output:
.scr(6912 bytes: bitmap + attributes).
Hardware palette graphics:
- Mode 1: 320ร200, 4 colors from 27-color palette.
- Mode 0: 160ร200, 16 colors from 27-color palette.
- 27-color hardware palette (3 levels R/G/B).
- Output:
.scrwith AMSDOS header.
TED chip graphics with extended palette:
- HiRes Mode: 320ร200, 2 colors per 8ร8 character cell.
- Multicolor Mode: 160ร200, 4 colors per 4ร8 cell.
- 128-color TED palette (16 hues ร 8 luminance levels).
- Output:
.prg(10,000 bytes: nibble + screen + bitmap).
ANTIC/GTIA graphics with 128-color palette:
- Graphics 8: 320ร192, 2 colors (high-resolution monochrome).
- Graphics 15: 160ร192, 4 colors from 128-color palette.
- Graphics 9: 80ร192, 16 shades (GTIA grayscale mode).
- Graphics 10: 80ร192, 9 colors from 128-color palette (GTIA color mode).
- Graphics 11: 80ร192, 16 hues at one luminance (GTIA hue mode).
- 128-color palette (16 hues ร 8 luminances).
- Output:
.gr8,.gr15,.gr9,.gr10,.gr11(raw graphics).
16-bit graphics with 512-color palette:
- Low Res (320ร200): 16 colors from 512-color palette โ .PI1
- Medium Res (640ร200): 4 colors from 512-color palette โ .PI2
- High Res (640ร400): Monochrome (2 colors) โ .PI3
- 512-color hardware palette (8 levels R ร 8 levels G ร 8 levels B).
- Output:
.pi1,.pi2,.pi3(DEGAS Elite format).
Original Chip Set graphics:
- Standard Mode: 320ร256/320ร512, 32 colors from 4096-color palette.
- HAM6 Mode: Up to 4096 colors via Hold-And-Modify encoding.
- Output:
.iff(IFF ILBM format).
Advanced Graphics Architecture:
- Standard Mode: 320ร256/320ร512/640ร512, 256 colors from 24-bit palette.
- HAM8 Mode: Up to 262,144 colors via Hold-And-Modify encoding.
- Output:
.iff(IFF ILBM format).
CGA, EGA, VGA and text mode graphics:
- CGA Mode: 320ร200, 4 colors from fixed CGA palettes.
- EGA Mode: 320ร200, 16 colors (fixed or from 64-color palette).
- VGA Mode 13h: 320ร200, 256 colors from 262,144-color palette.
- Text Modes: CGA 80ร25 and VESA 132ร50 character displays.
- Output:
.pcx(graphics),.ans(text/ANSI art).
TMS9918 and V9938 video chip graphics:
- Screen 2 (MSX1): 256ร192, 2 colors per 8ร1 line from 16-color palette.
- Screen 5 (MSX2): 256ร212, 16 colors from 512-color palette.
- Screen 8 (MSX2): 256ร212, 256 fixed colors (3-3-2 RGB).
- Output:
.sc2,.sc5,.sc8(BSAVE format).
MC6847 VDG and GIME chip graphics:
- PMODE 1: 128ร96, 4 colors from color set.
- PMODE 2: 128ร192, 2 colors (high-resolution).
- PMODE 3: 128ร192, 4 colors from color set.
- PMODE 4: 256ร192, 2 colors (highest CoCo 1/2 resolution).
- CoCo 3 320ร200: 16 colors from 64-color GIME palette.
- CoCo 3 640ร200: 4 colors (high-resolution mode).
- Color sets: Set 0 (Green/Yellow/Blue/Red), Set 1 (Buff/Cyan/Magenta/Orange), NTSC Artifact.
- Output:
.bin(CoCo 1/2 raw),.cm3(CoCo 3 format).
Processing Options:
- Dithering Algorithms: None, Floyd-Steinberg, Atkinson, Noise, Bayer (2ร2 to 16ร16), Blue Noise.
- Contrast Enhancement: None, HE, CLAHE, SWAHE (adaptive histogram equalization).
- Color Matching: Euclidean, Perceptive, Luma, Chroma, Hue, Mahalanobis.
- Filters: Lowpass, Sharpen, Emboss, Edge detection.
- Saturation & Gamma: Fine-tune color intensity and brightness.
Preprocessing Filters:
- Median: Noise reduction with selectable kernel size (3ร3, 5ร5, 7ร7).
- Sharpen: Edge enhancement with adjustable strength (0.2โ2.5).
- Sigma: Edge-preserving blur for smoothing gradients (5โ50 range).
- Solarize: Artistic partial negative effect (32โ224 threshold).
- Emboss: 3D relief effect with depth control (0.3โ2.0).
- Find Edges: Sobel edge detection for line-art output (10โ100 sensitivity).
- Modern Previews: Export as PNG, JPG, GIF, or TIFF for web use.
- Native Formats: Each system exports its authentic file format.
- Virtual Disk Images: Create disk images for ALL supported systems:
| System | Formats | Sizes |
|---|---|---|
| Apple II/IIgs | .PO, .2MG, .HDV | 140KB, 800KB, 32MB |
| Commodore 64/VIC-20/Plus4 | .D64, .D71, .D81 | 170KB, 340KB, 800KB |
| Amiga 500/1200 | .ADF | 880KB, 1.76MB |
| Atari 800 | .ATR | 90KB, 130KB, 180KB, 360KB |
| Atari ST | .ST | 360KB, 720KB, 1.44MB |
| BBC Micro | .SSD, .DSD | 100KB, 200KB, 400KB |
| MSX | .DSK | 360KB, 720KB |
| Amstrad CPC | .DSK | 180KB, 360KB |
| ZX Spectrum | .TRD, .DSK | 640KB, 180KB |
| PC | .IMG | 360KB, 720KB, 1.2MB, 1.44MB |
| TRS-80 CoCo | .DSK | 180KB, 360KB |
- Drag Images into the left "Image Browser" panel.
- Select an image to preview it.
- Choose your System from the horizontal bar at the top (Apple II, Apple IIgs, BBC Micro, C64, VIC-20, ZX Spectrum, Amstrad CPC, Plus/4, Atari 800, Atari ST, Amiga 500, Amiga 1200, PC, MSX, TRS-80 CoCo).
- Select the Mode and tweak Dither, Contrast, and other settings.
- Click Export in the bottom right corner.
- Choose PNG/JPG for a visual preview.
- Choose Native Format to save the raw file for the target system.
- Choose Create Disk to package converted files onto a virtual disk image for any system.
BitPast is built with Swift and SwiftUI for macOS.
- Frontend: SwiftUI (Grid Views, HSplitView, Combine for debounced live previews).
- Backend (Apple II):
b2d(modified build with struct packing fixes for modern macOS ARM64/x86_64). - Backend (All Others): Native Swift implementations with authentic format output.
- Disk Operations: Native Swift implementation for ProDOS volume creation and file management.
- Clone the repository.
- Open
BitPast.xcodeprojin Xcode. - Build and Run (Requires macOS 12.0+).
Since this app is not distributed through the official Apple App Store and may not have been notarized by a paid Apple Developer Account, macOS might display a security warning upon the first launch.
You may see a message stating: "The app cannot be opened because it is from an unverified developer."
How to bypass this warning (one-time process):
- Close the warning window.
- Go to the app in Finder (e.g., in your Applications Folder).
- Hold the Control key and click on the app icon (or use the Right-Click menu).
- Select Open from the context menu.
- In the subsequent dialog box, confirm that you want to open the app by clicking Open again.
- The application will now launch and will be trusted by macOS for all future starts.
If this does not work then:
- Open Terminal (Applications โ Utilities โ Terminal)
- Run the following command (if installed in Applications):
xattr -cr /Applications/BitPast.app
- Bill Buckels: For creating the original b2d (Bmp2DHR) command-line tool. Visit AppleOldies.ca.
This project is open source. The UI code is provided under the MIT License.




