BMOW title
Floppy Emu banner

Archive for the 'Floppy Emu' Category

Floppy Emu Update: Smartport Daisy-Chain Support

As of today, the BMOW Floppy Emu disk emulator now offers two different firmware versions for Apple II users: a normal version and a Smartport daisy chain version. You’ll find them both in the Firmware Downloads section of the Floppy Emu project page. Most people should use the normal firmware version, and it’s the default for newly-purchased hardware. The Smartport daisy chain firmware version is only needed in uncommon situations when:

1. The Floppy Emu’s selected emulation mode is Smartport Hard Disk, Smartport Unit 2, or Unidisk 3.5


2. The Floppy Emu is plugged into the back of a BMOW Daisy Chainer or to the Apple Unidisk 3.5 drive, A2M2053.

If in doubt, get the normal version. You can switch freely between versions as needed. There’s no harm in using the “wrong” version, but some disk emulation details may not work as expected, and the normal version offers a higher level of protection against misconfigured disk drives. If you don’t care about the gory details, then just install the version you need, and have a nice day. But if you enjoy learning about low-level disk voodoo, read on.

Why Two Firmware Versions?

Why are there two different firmware versions? Why not have one version, with some kind of user-selectable option for Smartport daisy-chaining? That would surely be more convenient, but it wouldn’t do the job that’s required here. The essential difference between these two firmware versions is the default power-up configuration of Floppy Emu’s CPLD chip, before the Emu’s on-board code has even begun to run. By the time that code could check a user option and decide how to change the configuration, the critical moment where the configuration is relevant would have already passed.

The difference is specific to a disk I/O signal named SELECT. With the normal firmware, SELECT is always configured as a CPLD input, and an external measurement will appear to show a floating voltage. But if using the Smartport daisy chain firmware, SELECT is initially configured as a pull-down: an output driving a logical zero value. It’s later reconfigured as an input, or not, depending on the Floppy Emu’s selected emulation mode. This is necessary in order to support detection of daisy-chained Smartport and Unidisk 3.5 devices, when other devices of the same type check for daisy-chaining at power-up. This scenario is fairly rare: it only happens when two intelligent Smartport devices are daisy-chained together, and Floppy Emu is the second device. That’s what conditions 1 and 2 above mean. When Floppy Emu is the sole Smartport device, or its selected emulation mode is 3.5 inch or 5.25 inch floppy rather than Smartport, then the normal firmware is the way to go.

The Tale of SELECT

What’s all this business with SELECT? Isn’t it a bad idea to dynamically reconfigure an input as an output? I agree it seems dubious, but that’s Apple’s design. I discussed the mechanism in more detail a few years ago here. In brief, SELECT is an input for dumb 3.5 inch floppy drives, used to select between the two sides of the disk. For 5.25 inch drives, the same pin is a 5 volt power connection. But for intelligent Smartport and Unidisk 3.5 drives, the SELECT pin is hardwired to ground inside the drive. The SELECT pin on the Unidisk 3.5’s rear daisy chain port is connected internally to an RS latch. The latch is cleared during power-up, but if SELECT ever goes high the latch will be permanently set. So in order to convince the Unidisk 3.5 that the next daisy-chained drive is another Unidisk 3.5 or similar intelligent Smartport device, SELECT must be held continuously low from the first moment of power-up. The BMOW Daisy Chainer uses the same technique to detect the selected emulation mode of the Floppy Emu that’s plugged into it.

To meet that requirement of “continuously low from the first moment of power-up”, the Floppy Emu CPLD’s default configuration must pull SELECT low, even before the code on Floppy Emu’s microcontroller has begun to run. But if a pulldown isn’t wanted at power-up, a different default CPLD configuration is needed. That’s why this requires two different firmware versions for these two different behaviors.

All this input/output direction switching for SELECT can be problematic. We can blame Apple for this. Floppy Emu includes an inline protection resistor between SELECT and the CPLD, to guard against possible signal contention if the computer tries to drive a signal on SELECT at the same time the Floppy Emu activates the SELECT pull-down for daisy chaining.

What happens if you use the normal firmware in a setup with two daisy-chained Unidisk 3.5’s or other Smartport devices? Nothing harmful, but the second Smartport device (which in this case is a Floppy Emu) won’t be recognized correctly. The first Unidisk 3.5 drive will think the Floppy Emu is some other type of drive, and won’t pass along the required I/O signals during Smartport activity. This is also exactly what happens with some other vendors’ Apple II disk emulators: they don’t pull down SELECT correctly, so they don’t support Smartport daisy-chaining. Maybe you never noticed. This little detail is one important piece of giving Floppy Emu maximum compatibility.

Microamps and Milliamps

So what happens if you use the Smartport daisy chain firmware in a setup where it’s not actually needed? Why not just always use that firmware? That’s actually exactly what all prior versions of the Floppy Emu firmware have done since 2019. Though I never used the term before, all prior firmware versions were essentially Smartport daisy chain versions, and it worked fine. But a recent analysis convinced me it’s better not to include the SELECT pulldown behavior of the Smartport daisy chain firmware if it’s not actually needed.

The issue is the current that’s present on SELECT when the pulldown is active but the computer is trying to drive the signal high. The Floppy Emu’s inline resistor limits the current, and this seems to be exactly how Apple intended things to work. The Apple IIgs and the (dumb) Apple 3.5 Drive both include an inline resistor on the SELECT output for the same reason. But it’s still not good practice, and it creates a burst of comparatively high current (compared to the other disk I/O signals) whenever it happens. This may create EM noise and minor signal integrity problems elsewhere. Over the long term it may also start to degrade the silicon structures in the CPLD’s input; a milder form of the same concern I previously described here. This SELECT pulldown current can happen by mistake, when the Floppy Emu is configured for Smartport emulation mode but is connected to a Disk II Controller Card or other controller that doesn’t support Smartport. Or it can happen briefly during normal use, either during power-up or when multiple drives of different types are daisy chained, each one using SELECT in a different way.

To be clear, there is no extra current present on SELECT when Floppy Emu’s emulation mode is configured as Smartport or Unidisk 3.5, and it’s daisy-chained to the rear of another Unidisk 3.5 or the BMOW Daisy Chainer. That’s exactly how the pull-down is intended to be used. Nor is there any extra current in typical scenarios where Floppy Emu is configured as Smartport or Unidisk 3.5 and plugged into the disk port of an Apple IIc or IIgs. No issues there.

I may be overly paranoid and this extra current may be just a nuisance or totally harmless. Experience from the past few years says it’s a minor issue at best, but nevertheless I want to eliminate it where I can. Because the SELECT pulldown is only needed in uncommon cases when two Smartport devices are daisy-chained, I feel better having the default firmware just disable the pulldown completely, to get the most robust possible behavior. Those few people who need the Smartport daisy-chaining support can use the alternative firmware version where the SELECT pulldown is enabled as needed. Everyone can be happy.

Read 4 comments and join the conversation 

Floppy Emu Update: WOZ Writes, Dual 5.25 Emulation, and More!

Today I’m excited to introduce a major new feature update for the BMOW Floppy Emu Disk Emulator. The latest firmware for use with Apple II computers adds the three most frequently requested new features: writeable WOZ and NIB disk images, formattable disk images, and dual 5.25 inch floppy drive emulation. Each of these three was tricky to implement, and I’ve lost track of how many times I said these things were too complex or the hardware couldn’t support it. Forget all that, because here it is! This is the biggest set of changes to the firmware in the whole history of the Floppy Emu, requiring some extensive rework under the hood. I hope the results are worth it.

The new firmware is version 0.2Q-F29. You can download the latest firmware here: firmware

WOZ and NIB disk images are now writeable!

This is great for copy-protected programs that need to save some information to the disk, like your Print Shop printer settings or your Castle Wolfenstein game progress. While the sector-oriented disk image types like .PO, .DO, and .DSK have supported writes since day one, the bitstream disk images (WOZ and NIB) typically used for copy-protected programs were previously treated as read-only by the emulation engine. No more. Your Wolfenstein games will now be safely saved.

Getting this to work was challenging, because the Floppy Emu wasn’t originally designed to handle raw bitstreams. A few simplifying assumptions were made in order to bridge the gap. It’s possible a few programs may cause trouble if they perform writes in a very non-standard way, though I haven’t yet found any real-world examples. The firmware doesn’t make assumptions about sector sizes or layouts or headers, so it should work OK even if the written data doesn’t look like standard DOS/ProDOS sectors. For example, Wolfenstein writes sectors whose data header begins with the bytes D5 DA AD instead of the normal D5 AA AD.

WOZ disk images contain a read-only flag in their header. Writing to the disk image will be disabled if this flag is set.

You can format 5.25 inch disks!

This is great when making disk copies, or if you need to create a save disk from within a game like King’s Quest. In-emulator disk formatting makes life much more convenient when copying or saving data. I have striven to make formatting a feature that “just works” as much as possible, but there are a few important details to know.

Successful formatting is dependent on the write caching behavior of your SD card. If the card introduces too many long delays during writes while it flushes its internal cache, the format may fail. In most cases you can just try again and it’ll work. If the format keeps failing, try a different SD card.

Many disk duplication tools do a simultaneous format and write of the target disk. Some will also do a bit-level copy, attempting to duplicate hidden details of copy-protected source disks. Cracking tools like Copy II+ may not work correctly when the target disk is a Floppy Emu disk image. Use DOS 3.3’s COPYA or ProDOS’s Duplicate Disk utility, both of which work fine.

Formatting is also dependent on the type of disk image used, and potentially also on the disk image’s metadata. In short: if you need to format a disk, use this Blank.woz disk image and you’ll be fine. Only NIB and WOZ disk image types support true formatting. All other types will retain standard DOS/ProDOS sector layouts and volume number 254 regardless of how you attempt to format them. NIB disk images have tracks that are about 4% bigger than normal, which is sort of like a disk drive that spins 4% too slowly. DOS 3.3 still formats a NIB just fine, as will games using normal RWTS routines, but ProDOS will complain the drive is too slow. Formatting WOZ disk images is more reliable, but it must be a WOZ image of a normal disk with normal track lengths and track layouts. If you just grab some copy-protected WOZ disk image and try to format it, it may fail. The provided Blank.woz should format nicely using most Apple II programs.

Dual 5.25 inch drive emulation is here!

Now the Emu hardware can emulate two 5.25 inch drives at once, which is great for two-disk games and for reducing disk swapping. This feature is available on the Floppy Emu Model C, so you may wish to consider an upgrade if you have an older model and frequently use 5.25 inch floppy emulation. Dual 5.25 emulation mode is compatible with any Apple II computer or 5.25 inch disk controller with a 19-pin D-SUB (DB-19) connector, except the Apple IIc. The IIc and the rectangular 10×2 pin disk connector both lack the necessary disk I/O signal for controlling a second drive. Both could theoretically be supported in the future with some kind of Y-cable adapter that plugs in to two separate disk connectors. Coming soon, maybe?

Don’t use Dual 5.25 mode in combination with the optional BMOW Daisy Chainer or A/B Switch. It will cause disk errors and could damage the Floppy Emu or your daisy-chained 5.25 inch drive.

Dual 5.25 mode emulates two daisy-chained 5.25 inch drives on a single Floppy Emu board. When using this mode, care must be taken to avoid accidentally creating a forked daisy chain with two branches. This could cause the Floppy Emu and another daisy-chained or A/B-connected 5.25 inch drive to fight with each other, possibly damaging them both. To avoid this, select single 5.25 inch emulation mode when using the Daisy Chainer or A/B switch.

……One More Thing

Effective immediately I’m cutting the price of the Floppy Emu Model C by $10 and the Floppy Emu Deluxe Bundle by $20. I’ve been testing these new prices for a little while now as a temporary sale, and based on the response I’ve decided to make the new prices permanent. This puts the Model C at $99 and the Deluxe Bundle at $119. I hope this helps to get hardware into a few more hands of vintage Apple enthusiasts.

Thanks for everybody’s support and enthusiasm over the years that I’ve been doing this. Sometimes the road is bumpy, but it’s always a pleasure hearing from people about the ways they’ve put their BMOW hardware to use. I’m happy to have contributed something to this hobby and its amazing community.

Read 37 comments and join the conversation 

BMOW Product Updates

Mac ROM-inator II rominatorii-front-and-back

The Mac ROM-inator II is back in stock – get yours now at the BMOW Store. The ROM-inator II is a replacement ROM SIMM for Macintosh II series computers and the Mac SE/30, adding a bootable ROM disk, 32-bit cleanliness, HD20 hard disk support, and more. Read more about it at the project’s home page.

The instruction manual for the BMOW Floppy Emu disk emulator is now available in Japanese. Thanks to Kay Koba for the translation work. Floppy Emu is a floppy and hard disk emulator for classic Apple II, Macintosh, and Lisa computers. It uses an SD memory card and custom hardware to mimic an Apple floppy disk and drive, or an Apple hard drive. The Emu behaves exactly like a real disk drive, requiring no special software or drivers.

Read 1 comment and join the conversation 

Floppy Emu Update: Apple II Copy-Protection

Good news for Apple II fans: there’s a new Apple II firmware update for the BMOW Floppy Emu Disk Emulator. This update introduces substantial emulation enhancements for copy-protected Apple II software on 5.25 inch floppy disk images. Though Floppy Emu is designed for standard non-protected disks, most copy-protected games and utilities should now work too, including most disks from the WOZ-a-Day collection.

The new firmware is version 0.2N-F26 or 0.2N-F27, depending on the model of your Floppy Emu board. You can download the latest firmware here: firmware


Disk images of copy-protected Apple II software normally must use raw bitstreams, rather than using any high-level data representation like sectors. The NIB and WOZ disk image formats are both raw bitstreams, and the WOZ format has grown increasingly popular for this purpose over the past couple of years.

The BMOW Floppy Emu has supported both NIB and WOZ formats for some time. But even when the disk images could be read, the games didn’t necessarily always run correctly, because they sometimes attempted weird non-standard things with the disk drive. The Floppy Emu hardware didn’t always respond to these attempts as the games expected. The focus of this firmware update has been addressing a handful of edge cases and uncommon behaviors to satisfy most copy-protection schemes, enabling more copy-protected games to work with the Floppy Emu.

Thank you to Nick Bauer, who provided me with a carefully-researched list of several dozen copy-protected WOZ games that weren’t working correctly with the previous Floppy Emu firmware. Nick documented the behavior of each game on two different Apple II models, as well as with MAME, which was a tremendous help. After a few weeks of R&D when the new firmware was ready, Nick tested it with 350+ disk images from his collection.

So what changed?

SD Card I/O Rate

The most significant change is a doubling of the data rate when communicating with the Floppy Emu’s SD memory card, from 5 Mbps to 10 Mbps – the maximum rate supported by the hardware. The data rate has been 5 Mbps since the earliest days of the Floppy Emu, because 10 Mbps didn’t appear to be necessary, and because higher data rates increase the chances of signal errors due to analog signal effects. But at least one copy-protected game wouldn’t run correctly without the higher data rate – the Floppy Emu simply couldn’t fetch data fast enough from the SD card to keep the game satisfied. So 10 Mbps it is.

The data rate was increased in order to help 5.25 inch floppy disk emulation, but it also affects Apple II 3.5 inch floppy disk and Smartport hard disk emulation. This is the change I’ll be watching most closely for user feedback. If there’s already some source of electrical signal degradation in the system, like a noisy power supply, then the increased data rate may result in an unacceptable number of SD card read/write errors. In my testing, it worked smoothly with three different Apple II computers, five different Floppy Emu boards of various generations, and three different SD cards. But one of my earliest hand-soldered Floppy Emu prototypes did report errors at 10 Mbps, so I’ll be keeping an eye on this.

The SD card data rate can be reduced to the old rate of 5 Mbps by holding down Floppy Emu’s PREV button during power-up. In this case, a small number of copy-protected games including Hard Hat Mack may not run correctly, but most software will be unaffected.

Disk Bit Rate

Floppy Emu’s interface with the Apple II computer lies at the opposite end of the data funnel from the SD card. To the computer’s disk controller, the Floppy Emu looks like a standard 5.25 inch floppy drive, with a standard data rate of one bit every 4 microseconds. Except that some copy-protected software violates this standard. The new Floppy Emu firmware changes the bit rate from a fixed rate of 4 microseconds per bit to a variable rate that depends on the disk image, helping games with non-standard bit rates to run correctly.

How does this work? A 5.25 inch floppy disk spins at 300 RPM, which is one rotation every 200 milliseconds. A normal floppy disk has 50000 bits evenly spaced around each circular track, resulting in a rate of one bit per 4 microseconds. But some disks squeeze 51000 or 52000 bits into a track, which produces a bit rate closer to one bit per 3.9 microseconds.

The Floppy Emu’s hardware design makes it difficult to compensate for this, and the previous firmware didn’t even try. The 4 microsecond number is baked into the logic of Floppy Emu’s CPLD chip, ensuring that the rate never wavers even if the microcontroller is servicing an interrupt or is otherwise busy. While this is very helpful for normal disk images, it means that the bit rate can’t be adjusted on the fly. In practice this was rarely a problem, and most games with a 3.9 microsecond bit rate still worked just fine at 4.0 microseconds, but a few did not.

After some experimentation, I settled on a new CPLD design that allows for on-the-fly selection of a few different fixed bit rates. While this isn’t quite as flexible as a fully-adjustable bit rate, it satisfies nearly all of the copy-protected games I tested without requiring any Floppy Emu hardware changes.

Cross-Track Synchronization

Some copy-protected games rely on the relative spatial orientations of adjacent tracks on the disk. The WOZ disk image format encodes this information, and the old Floppy Emu firmware was already maintaining this cross-track synchronization. Frogger uses a track synchronization technique called Spriadisc, and it worked nicely on the Floppy Emu. But deeper investigation revealed there were still some cases where cross-track sync wasn’t being handled properly. The details depended on what method the software used to verify the track synchronization: counting disk bytes, measuring time, or some hybrid method.

There are several sources of potential synchronization error. Whenever the CPLD bit rate doesn’t exactly match the original disk’s bit rate, the behavior in the time domain will be slightly off. An entire track’s worth of bytes will be transmitted in slightly less or slightly more than 200 ms. With the old firmware, this type of error was most evident for games using cross-track synchronization and that had a number of bits significantly different from 50000. This error is mostly eliminated now that the bit rate is changeable.

A second source of error appears when games verify track synchronization through byte counting, if the SD card can’t load the track data quickly enough. A game might read sector 0 from track 0, then immediately step to track 1, and then count how many bytes pass by before sector 0 appears on the new track. If track 1’s data isn’t finished loading from the SD card yet, the Floppy Emu will insert a continuous series of special 10-bit timing bytes into the bitstream, until the real track is ready. This results in the software counting a different total number of bytes until sector 0 appears. Increasing the SD card data rate helps, by loading the track data faster, and reducing or eliminating the time period where the game sees 10-bit timing bytes instead of the track’s data bytes.

Weak Bits

Another common copy-protection scheme involves regions of the disk where there’s no magnetic flux. Due to the design of the floppy drive hardware, these will appear as random data when read. A new random-looking value will be read each time the empty region of the disk is accessed. Copy-protected software can test for this, and confirm that the data really is changing randomly and isn’t some fixed random-looking pattern, such as would be produced by Copy II+ or other disk copying software.

Floppy Emu already supported weak bits, and automatically substituted random “fake bits” in their place. All of the weak bits examples in the WOZ disk image reference set were working fine. But as with cross-track synchronization, a closer look found there were still some minor problems. It appears that the random fake bits supplied by Floppy Emu weren’t quite random-looking enough for some copy-protected software. This was hard to pin down, and I experimented with longer and shorter random sequences, as well as changing the sequence length. What seemed to help most was changing the distribution of random values, so that 0 bits were more likely to appear than 1 bits. The WOZ reference actually mentions this, but I’d tried it once earlier and it seemed to actually make things worse. It remains something of a mystery, but is working OK now with the disk image test suite.

Other Fixes

Aside from the interesting copy-protection stuff, this new firmware update also includes some basic bug fixes. I found two cases where track-to-track stepping movements of the disk were being misidentified or missed altogether, resulting in the Floppy Emu moving to the wrong track of the disk. Neither of these cases ever appeared with normal software, but they sometimes happened with copy-protected games that used custom code to directly control the stepper motors. A small fraction of WOZ disk images were also being misidentified as DSK images, causing errors when attempting to use them.

Oh yeah, one more thing: the new firmware also includes a menu usability enhancement for SD cards with deeply-nested directories of disk images. When exiting a subdirectory and returning to the parent directory, the selected menu item will now be the item for the subdirectory that was just exited, instead of the first menu item. This makes it easier to navigate into and out of subdirectories without getting confused and lost.

Read 3 comments and join the conversation 

Redesigning an Acrylic Case

The acrylic case for BMOW’s Floppy Emu disk emulator is back in stock, along with the deluxe bundle of Floppy Emu with the case and SD card. Get them now at the BMOW store. This is a new version of the laser-cut acrylic case that I’m excited to introduce today.

Eagle-eyed readers may notice that this case looks subtly different from the previous version. I call it a “sandwich style” design because the top and bottom panels overhang the sides, holding the side pieces between them like cheese held between slices of bread. This differs from the previous case, whose six panels with interlocking notches were joined at flush edges with no overhang. The sandwich style ensures that all the side pieces are locked securely in place, and can’t wiggle loose after assembly.

The changes continue inside the case, with the addition of a button guide for the button plungers. The button guide serves several important purposes. During assembly, it makes it possible to stand up the button plungers on the Floppy Emu’s buttons without the plungers falling over, so the top panel can be lowered down over them to finish the case assembly. This is much easier than the old method of suspending the plungers from the top panel with tape. After assembly, the button guide provides a second point of support for each plunger, ensuring that it moves straight up and down without unwanted angles or slippage. This also means the plungers’ functioning is independent of the case screw tightness, without any need to fine-tune the screws.

The last big change for the case is the introduction of top-panel engraved symbols for the power and status LEDs, instead of light pipes. The light pipes were fun, but they made case assembly substantially more difficult, and they’re not necessary when the top panel already functions nicely as an LED diffuser. The engraved symbols with diffuse LEDs give the new case a more minimalist look.

You may be surprised to learn this is something like the 15th version of the Floppy Emu case since I started making them! Most of those earlier revisions were small adjustments to fit or style, so this sandwich style redesign is the first really significant change. I’ve seeded some experienced Floppy Emu beta testers with the new case, and they report it takes about half the time for assembly and is better all-around. I hope you enjoy it!

Read 4 comments and join the conversation 

Retro Puzzle Contest: Solution

On Monday I posted a retro puzzle contest for vintage computing fans. Starting with only a confusing image of jumbled 8-bit characters, I promised that players would proceed through a tricky series of nested challenges, ultimately leading to the name of a person. If you’ve read the book (or seen the movie) Ready Player One, then you’ve seen this type of puzzle chain. I predicted that knowledge of vintage computers, software engineering, and 1980s cultural references would be helpful. And I offered a $100 gift certificate to whoever solved the puzzle and identified the mystery person first.

SPOILER ALERT! The puzzle was solved by the pseudonymous “frogor”, 28 hours after it was first posted. Congratulations! I’m going to describe the solution here, and the several different layers of the puzzle’s challenges. If you’d like to attempt solving the puzzle yourself first, read no further! It’s not an easy puzzle, and you won’t solve it in 5 minutes, maybe not in 5 hours, but you’ll find a retro-techno-challenge that’s worthy of the time you invest in it. See the original puzzle announcement here.

Level 1

The puzzle begins with a 39 x 26 grid of random-looking letters, numbers, and symbols. OK, now what? Several people suggested that it was some type of ASCII autostereogram image. Others thought that if they squinted, they could sort of imagine three rows of large letter-type structures, separated by hearts. Interesting theories, but if you could simply stare at the first clue and see the answer, that would hardly be a “series of challenges”. No, that wouldn’t be a puzzle worthy of this audience.

But there are a lot of hearts in the image – what might their significance be? Also diamonds, clubs, and spades. And all the glyphs look conspicuously bitmap-y, like the glory days of 8-bit computers. And then there’s the odd choice of blue-on-blue color scheme. Hmm.

Identifying the font used in the image seems like a good idea. So how can you do that? If you’re lucky, you’ll recognize it immediately, because you were immersed in it for hours every day during your formative years. Otherwise, you will probably have to brainstorm the names of various vintage computers, look for examples of their character set fonts, and see if they look like a match. Some people pointed to code page 437, and others to PETSCII, which both look close but aren’t quite right. Some of their glyphs have slightly different shapes than the clue’s image, and a few glyphs from the clue’s image aren’t present in code page 437 or PETSCII fonts.

The font used here is actually ATASCII, from the Atari 8-bit series of home computers sold between 1979-1991. The blue-on-blue color scheme is a clue. Those are the default text colors used by the Atari 8-bit computers. And all those hearts? The heart is the first entry in the ATASCII character set.

Level 2

Atari font, check. Now what? Maybe it’s a clue? “Atari” plus random gibberish symbols equals the name of the mystery person? Maybe not.

A font map is a mapping between numbers and glyphs. In the case of ATASCII, there are 256 different glyphs corresponding to the numbers 0 through 255 – one byte. For example, the heart is ATASCII value 0, and the capital A is ATASCII value 65 (hex 0x41). Converting all the glyphs to the equivalent byte value seems like it could be useful, but how?

If you’re a masochist, you could open two side-by-side windows with the image from the clue and the ATASCII font map, and do the conversion by hand. There are about 1000 glyphs in the image from the level 1 clue, so this would take a long time, and you’d probably make some mistakes.

A better solution might be to write a small program to automate the process. Inspection of the clue’s image shows that each glyph is 8 x 8 pixels. So write a program to compare each 8 x 8 block from the clue’s image with 8 x 8 blocks from the ATASCII map, until it finds a match, and then record which ATASCII entry it was.

Even better, use some existing software to do the conversion for you. Frogor writes “I used ImageMagick with some character tables to break apart the grid into individual characters and automate mapping them to their character set byte values.”

When the conversion is done, you’ll have an array of 1014 bytes.

Level 3

Now what can you do with this array of bytes? What is it? It seems to have some kind of structure: there are a large number of 0 bytes, and other values like 17 (hex 0x11) appear very frequently. It’s definitely not random data.

Making sense of the data is tricky. Maybe you can try to guess what sort of data I would put here, knowing the parameters and theme of the puzzle contest. Or maybe you have lots of hacking experience, and can recognize the raw forms of common file types and data structures just by staring at the bytes.

The people from level 1 who thought they could see three rows of large letter-type structures actually had a good idea. Frogor writes “I tried to figure out what my output -was- and could very definitely see some data structure by shifting the rows of hex bytes one character at a time. Since ‘file’ didn’t recognize it, I guessed it might be an image encoding of some sort – GraphicConverter RAW Import has an -amazing- visualizer which lets you play with the various settings until I tried as a last ditch effort a color encoding I probably should have started with.”

Yes, the bytes are a simple two-color bitmap, in raw form without any headers or other metadata. It’s just a grid of pixels. If you write each byte in binary, with a black pixel for a 1 bit and a white pixel for a 0 bit, then the 39 x 26 grid of glyphs from the first clue is converted into a 312 x 26 two-color bitmap image. Each one-byte glyph has eight bits which encode eight pixels horizontally, so the converted bitmap is eight times wider than the original grid of glyphs. And oh, what a bitmap it is.

Level 4

The upper-right of the bitmap says “BMOW RETRO PUZZLE AUG 2020”. Good, that tells you you’re in the right place. Then there’s some kind of weird code, and a couple of clock / arrow things pointing in different directions. Right.

It doesn’t take a rocket surgeon to recognize that this is some type of substitution cypher. Those boxy and wedgy shapes with dots inside them are clustered into groups that look like words, and the clusters


appear twice, on both the second line and the third. Maybe you immediately recognize this as the Pigpen Cypher, a classic cypher that’s often used in games and puzzles. Or maybe you search Google for “cypher with lines with dots inside them”, and are rewarded with Pigpen Cypher as the top result.

It seems Frogor was initially stumped, but was saved by outside help. “The next stage of decoding gave a tantalizing clue in the first row – but figuring out the second and third rows I credit to a suggestion of a friend.”

Performing a Pigpen substitution for the second and third rows of the bitmap reveals some new text. But two of the dots don’t seem to be part of the Pigpen cypher.

Level 5

Here’s where knowledge of 1980s cultural references comes into play. “We see farther.” If you were alive in the 80s and were involved in the home computer scene, you recognize this as the slogan of game developer Electronic Arts. And if you don’t recognize it, Electronic Arts is the top search result for this phrase.

The other lines are just lists of numbers. There’s also a mystery dot on each line, and those clock / arrow things at the end of each line. What’s this all about? What if you replace the numbers with the corresponding letters of the alphabet? It sounds worth a try. That gives you DI·FCDG and H·CEFG. Ugh.

Maybe the numbers are referencing one of the people on this iconic Electronic Arts “We See Farther” poster?

Maybe those clock / arrow things are pointing to someone on the poster? Or maybe they aren’t actually clocks or arrows, but compasses pointing north and east? That looks interesting! In that case, the mystery dots could be decimal points for a latitude and longitude in decimal degrees format. Frogor says “in hindsight the helpers on the right side were nice confirmation of being on the right path”.

What is at:

49.6347 degrees north
8.3567 degrees east

Google Maps provides a quick and ready answer for the latitude / longitude lookup.

Level 6

The location is somewhere in Germany, at something called “Worms Hbf”. Your German-speaking friend or a dictionary will tell you that Hbf is an abbreviation for Hauptbahnhof, the main train station in a city. Investigating the map further confirms that 49.6347 N, 8.3567 E is the location of the central train station in the city of Worms, Germany.

Level 7




We see farther. Electronic Arts. Worms. All the pieces are here, but what do they mean? Is there some other clue in these words? If there’s some connection here, it’s not obvious.

If you go back to that Electronic Arts poster again, and take a closer look:

DAVID MAYNARD (arms folded) never intended that his innocently entitled WORMS? should become the Air Force’s secret I.Q. test for alien species. He does not endorse the wanton gambling cult that has sprung up around this product. And he deeply regrets the inhumane uses it has been put to by the Bulgarian Secret Police. “WORMS?”, he says, “was only meant as a lighthearted exploration of limited artificial intelligence using pretty light and simple music.” Right, David.

Seven levels deep into the puzzle, the mystery person is finally revealed! Phew! Success at last.

Creating the Puzzle

My original inspiration for this puzzle was simply “encode some stuff in ATASCII”. My first computer was an Atari 800, and I spent many hours staring at its strange square letters and symbols. They’re etched in my brain.

The idea to use an obscured latitude and longitude came from Brainchase. If you have kids that enjoy puzzles, they’ll love Brainchase. Or forget your kids and sign up for yourself. The first levels of their puzzles are simple enough for even young kids, but to finish them all requires hardcore problem-solving skills. And they have super cool prizes like buried treasure.

Eventually I arrived at the central idea: a latitude/longitude that points to a city whose name is also an English word, that when combined with another phrase, will uniquely identify somebody. “We see farther” jumped into my head immediately as a recognizable 1980s phrase that fit the puzzle’s retro-computer theme. I played loads of EA games as a kid, and also worked at Electronic Arts for many years as an adult.

To make the puzzle fit together, I needed to find an EA game whose name was also the name of a city. And it couldn’t be just any EA game, it needed to be an early game from the era when “We see farther” was still in use. There are no cities named “Archon” or “Pinball Construction Set”, but Worms fit the bill perfectly. So you see, I didn’t actually choose the mystery person. I chose the puzzle format, and the identity of the mystery person was determined for me.

Finding a latitude/longitude for Worms was harder than I expected. A city is a large place; it doesn’t have a precise latitude/longitude. No matter what coordinates I entered into Google Maps, the default behavior was to show a very zoomed-in view of streets and individual buildings, rather than a regional or national map of Germany. I worried this might give people the wrong idea. Would they understand that the clue meant the whole city of Worms, and not some random shopping mall or Burger King in the city? What building should I point to? I eventually settled on the train station as a stand-in for the city itself.

For the Pigpen cipher, I created a custom Pigpen font using Bitfontmaker2. This probably wasn’t necessary, but it was fun to type my secret messages in plaintext and have them automatically rendered in Pigpen. The other elements of the bitmap were drawn in by hand, to create the finished bitmap shown in level 4.

I used LVGL’s Online Image Converter to turn the bitmap into an array of hexadecimal bytes. Then I wrote a short Python program to turn the hex bytes into decimal bytes spread across DATA statements for use with BASIC. As a final step, I wrote an ATARI BASIC program and ran it in the Atari800MacX emulator.

10 FOR R=1 TO 26
20 FOR X=1 TO 39
40 PRINT CHR$(27);CHR$(NUM);
1000 DATA 65, 31, 192, 32, 143, ...

CHR$(27) is the escape sequence. It ensures that control characters like tabs, newlines, and the bell are rendered as ATASCII glyphs instead of performing their control functions. Running this BASIC program created the finished image used for the first clue at level 1. Because the image came from a real (emulated) Atari rather than some paint program, I could be confident the glyphs, colors, and spacing were 100% accurate. This ensured that people could correctly identify the font, and do a pixel-by-pixel comparison against the ATASCII font map if necessary.

A Sequel?

I really enjoyed developing this puzzle, even though it took a long time to create. I also enjoyed watching other people’s thought processes as they tried to solve it. A friend of mine “live-texted” me his progress, which was lots of fun, even though he never finished.

I was a little bit disappointed that more people didn’t attempt the puzzle. Maybe lots of people took a brief look at it, weren’t sure where to begin, and immediately gave up. Or maybe people didn’t really understand what kind of puzzle it was, or why it might be interesting and worthwhile for them to invest time in solving it.

That leads to thoughts of a sequel. Now that puzzle #1 is done, and more people understand what this puzzle format it all about, I’m hoping there might be greater interest in a new one. I would enjoy the challenge. Would you?

Read 3 comments and join the conversation 

« Newer PostsOlder Posts »