A Workbench icon is a small binary file with a picture in it, and the picture is drawn in pen numbers, not colours. Pen 1 is “whatever colour the screen has in slot 1”. On the four-colour Workbench the Amiga was designed for that worked, because everyone’s slot 1 was black. On a 256-colour screen with a different palette on every machine, an icon drawn for one desktop came out wrong on the next, and the eight-colour MagicWB icons everyone loved came with a page of instructions about setting your palette first. Eight pens is about what happens when you do not.
Nicola Salmoria’s idea, in the early nineties, was to stop trusting the screen. A NewIcon carries its own palette, up to 256 colours, and when Workbench draws it the picture is remapped on the spot to the nearest pens the screen actually has. Where to put the extra data was the clever part: an icon file has a list of tooltypes, free text the program can read, so the picture went in there, as lines beginning IM1= and IM2=, encoded to survive as text. An old Workbench ignores those lines and shows the ordinary picture underneath. A Workbench with the NewIcons patch running shows the colour one. Both images live in the same file, which is what let the format spread.
Every NewIcon is two icons. One for the machine you have, one for the machine you wish you had.
Salmoria wrote versions 1 and 2. From version 3, Eric Sauvageau and Phil Vedovatti took it on: Sauvageau the code, Vedovatti the hundreds of icons in the isometric house style that became the look of a late-nineties Amiga. Version 4.6, in June 1999, was the last, and its readme says why: AmigaOS 3.5 was about to ship with NewIcons support built in, and a new native format, GlowIcons, that took the same idea and stored it properly. Eight years of free development, and then the operating system caught up. It is the one on this disk.
What it is on this disk
Three parts. newicon.library does the reading and remapping; the package ships a plain one and a “high end” one for 68020 machines with graphics cards, and the mint installs the high-end build. C:NewIcons is the patch, started at boot, that teaches Workbench to look for the tooltypes; with it comes DefIcons, which gives a file with no icon of its own one that matches its type. And a set of pictures: replacement icons for the disks, the drawers, the Prefs editors, everything Commodore drew in four colours, installed by a script called Install_Icons that walks the system drawers and merges a NewIcon into each one.
Its preferences have three switches worth knowing. RTG Mode keeps the remapped pictures in Fast RAM instead of Chip, which is right for a graphics-card screen and is on. No Borders drops the Workbench 1.x-style box around each icon, and is on. Transparent lets the background show through the empty parts of an icon while you drag it, which the guide tells you to tick, and which is off here on purpose: on the MiSTer’s RTG screen the dragged icon simply vanished until you let go. The saved NewIcons.prefs with exactly those three answers is written onto the disk by the installer, so the preferences program never has to be opened.
The icon that stayed ugly
The picture that started this note was a game icon that no palette would fix. It had no IM1= lines at all: the WHDLoad installer had asked which icon style to use, and RomIcon had been chosen, a sixteen-colour dither meant for a Workbench with those sixteen colours in the right order. NewIcons had nothing to remap. The install drawer still had the NewIcon version sitting next to it as StateOfTheArt.newicon, and the fix was to merge its lines into the icon on the disk, which NewIcons’ own copynewicon does, and which a few lines of Python do identically on the host. The host version now runs over every game icon on the disk as part of the mint. The full story, with the histogram that settled it, is in Eight pens.
What the scripts and AmiPilot took over
Chapter 8 of the guide, method two. Copy the archive, boot, unpack, run the installer, pick the high-end library, tick three boxes, run Install_Icons, reset. Where each of those went.
- Automated
- Eliminated
Boot, Shell
Reload WinUAE, Shell, lha x, endcli.
7z on the host.
- Automated
Install
Run the installer: high-end library, C:NewIcons, DefIcons, the icon set.
install_newicons.sh writes the library, C:NewIcons, DefIcons and the pictures onto the hardfile at rest, and adds the start line to S:User-Startup. Called by setup_winuae.sh --newicons and by build_mister_image.sh.
- Automated
Preferences
Open NewIconsPrefs, tick RTG Mode, No Borders and Transparent, Save.
A saved NewIcons.prefs goes into ENVARC: with RTG Mode and No Borders on and Transparent off, for the reason above. The window never opens.
- Once
First boot
Run Install_Icons from the NewIcons drawer, then reset.
The installer leaves a block in S:User-Startup that runs Install_Icons on the first boot, merges the pack’s pictures into SYS:Disk.info and SYS:Trashcan.info with copynewicon, and writes two flag files in ENVARC: so later boots skip both. The one reset is the one you were going to do anyway.
- Automated
Game icons
The guide says: choose NewIcon when the WHDLoad installer asks. If you chose RomIcon, live with it.
fix_romicons.sh finds every RomIcon in the games drawer and merges the matching .newicon with merge_newicon.py; the mint runs it as --romicon-newicons DIR. On a disk that is already booted, whdload_newicon_guest.py has AmiPilot run the guest’s own copynewicon instead, because the merged icon is over AmiPilot’s upload limit.
- Automated
Check
Look at the icons.
icon_report.py decodes any icon on the host: planes, pens used, NewIcon lines present or not, and a verdict. verify_winuae_desktop.sh restarts WinUAE and has AmiPilot pull SYS:Disk.info, SYS:Trashcan.info and any icon you name off the running machine to prove the NewIcon data landed. show_drawer.sh opens one drawer, reports every icon in it, and captures it.
Steps follow Chapter 8 of the Green Amiga Alien guide; the ledger for it is here. History from the NewIcons 4.6 readme and the NewIcons support site. The words are ours.