Dr. Nolen Scaife

Looking for a working ImageWriter II for MARCHintosh. The one I have doesn’t print in color. It looks like the mechanism that raises and lowers the ribbon has failed.

I spent some time over the last month building a Game Boy photo booth for our holiday party, largely inspired by both Sebastian’s photo booth and the display I saw at the Long Island Retro Gaming Expo earlier this year. Instead of using the original Game Boy Printer, I decided to use an Instax Square Link printer.

The challenge with these printers is that they’re designed to be used with a smartphone app. You can’t print to it over USB and there’s no API documentation for communicating with it. Luckily, someone started reverse engineering the protocol and published it as the InstaxBLE project on GitHub.

The rest of the project mimics Sebastian’s work: use the GB Interceptor to acquire an 8x scaled real-time feed of images from a Game Boy Camera, crop the picture out of the image, apply a new color palette if desired (similar to how FlashGBX does it), scale and crop back down to the Instax Square’s 800x800px format, and use the InstaxBLE library to send it to the printer. At least, in theory!

Printing turned out to be the most unreliable part of this exercise. There’s something strange with the printer, my computer, or the library. The API would sometimes return the printer was out of film (when it wasn’t), that the print was successful (it didn’t print), or it would hang. Eventually, it became obvious that there’s a specific sequence of programmable events that would print a few pictures reliably: cycle the power on the laptop Bluetooth module, unpair the printer, search and connect for the printer, authorize the pairing, and send a print. This would tend to work for 2-3 pictures, and then the printer would stop responding until power cycled. In the end, we just helped everyone take a photo and restarted the printer when needed.

I would love to spend some more time debugging this and seeing what causes this problem, but ultimately I only needed the whole system to work for a couple of hours, and people enjoyed getting their very own Game Boy Camera photo!

It’s prime leaf peeping in Colorado. Already enjoying fall.

Green and gold trees with a house in the distance

Neptune build is underway! These fine pitches are really tough. 🎮

Closeup of Sega Neptune build under magnification

Coldplay @ Empower Field, Denver, CO

the stage and crowd of the Coldplay show

Finished The Legend of Zelda: Echoes of Wisdom today. I’ll never say no to a 2D Zelda but this one started to feel repetitive toward the end. Out of the hundreds (?) of echoes I picked up, I found myself only needing the same 10 or so for each puzzle.

Finished Legend of Dragoon. Beautiful art, but everything else struggles to stand out when compared to other RPGs of the time. 🎮

I got to the end of the first Wario Land game but somehow I don’t think this is the good ending

After a few minor repairs and some internal wiring fun, this X68K project is complete. Keep the scene alive! 🎮

X68000 and MT-32

Clock issue with the X68000 was fixed by replacing the Ricoh RTC chip! Installed a socket so it will be easier next time. 😅

First game cleared of the year!

DQ3 final boss (Zoma) clearedTo be continued in Dragon Quest I & II remake

X68000 Notes

I recently bought an X68000 XVI during a recent vacation to Japan. It was one of a few things on my list of items to look out for. I found one on the last day at BEEP in Akihabara, a store that caters to retrocomputing hobbyists. What a dream!

Two X68000 systems at BEEP in Akihabara (November 2024)

The machine had been serviced by BEEP: recapped, battery replaced, and the floppy drives were serviced. That doesn’t mean this isn’t a project, though! This post is an attempt to document some of testing I’ve done and resources I’ve found along the way.

Getting Video

I ordered this Japanese RGB-15 to 15-pin D-SUB (commonly used for VGA) adapter from Tindie, but my problems started almost immediately. The RetroTink 4K continued to show no signal on the RGBHV input while the machine was connected. I took the new cable apart to check the connections, checking the continuity between RGB-15 and VGA pinouts using my multimeter.

As it turns out, the HSYNC and VSYNC lines were reversed on the HD-15 side! Once I swapped them, I got only a small horizontal line on the display. incrediblehark has created a set of input modes that can be loaded onto the RetroTink. This solved the image problem I was finally up and running.

Getting Booted

My X68000 has no internal storage, and so it’s not very useful without something to boot. You can boot it off a BlueSCSI but not only do I not have one with the correct SCSI connector, you cannot boot it at all without the system disk. Unlike other PCs from the time, the X68000 has no boot settings menu that allows you to select the startup disk. You need the system disk that came with the machine. On that disk is an application, SWITCH.X, that allows you to configure the startup settings. The disk image is available on the Internet Archive.

Writing Floppy Disks in 2025

Dear reader, if you are still here, there are going to be some serious leaps here. The point of this post is not how I write floppies in 2025, but if you are at all interested in vintage computing, this is a fun rabbit hole.

This is the resource I used. The link to XFloppy no longer works, but both the site and download are still available on the Internet Archive. The instructions to install the VXD driver did not work for me. I had to place the VXD into C:\WINDOWS\SYSTEM and then run msconfig to add the driver to the [386Enh] section of system.ini. Don’t forget to reboot!

From modern PC:- Download disk image.- Start local Python HTTP server: python3 -m http.server

From PC running Windows 98, equipped with a 5.25" floppy drive:- Use browser to access HTTP server on remote system. Download disk image.- Use Virtual Floppy Image Converter to convert image to XDF format.- Use XFloppy to both format and then write the image to disk.

Strange Issues

The system ran fine for a couple hours with no real issues. It powered off and on fine. Later, it started not shutting down. The screen would fade out and any music would stop, but the power light would stay green and the fans would stay running. This issue seems to be documented here, and implies an issue with the RTC chip. The PWRTEST program showed no issues and problem suddenly stopped. I have not been able to reproduce it since.

memtest68k hangs immediately on startup. There’s a post on the NFG forum that describes my problem exactly. The memory test never starts. It sounds like the problem for that person was also a faulty RTC chip, and I started thinking about how I could see if that chip was working at all.

I decided to check the date and time set on the system, and it turns out that it’s not updating. You can set the time and read the time, but it doesn’t appear to increment.

X68000 output showing that the date and time are not incrementing

After leaving it off for a day, it had incremented about 45 minutes.

Oscilloscope Testing

Here’s the service manual I found for this model. Pages 54 and 85 show the relevant circuit.

Something is definitely wrong with the RTC circuit. Here is an oscilloscope view of the CLKOUT pin:

Oscilloscope output of the CLKOUT pin

And here is an oscilloscope view of the 32.768KHz crystal in the oscillator circuit:

Oscilloscope output of the crystal

I’m not yet an EE expert nor am I the best at using an oscilloscope, but here’s what the 16MHz signal looks like off of a different crystal:

Oscilloscope output of another crystal on the same board

More to come, but there’s definitely some repair that needs to be done!

Chromeo @ Mission Ballroom, Denver, CO

Reflecting a bit on the past year today and recalling a gift now 30 years old. The technology has transformed, but my desire to connect and learn hasn’t.

Verifying Optical Media with qpxtool

There is a lot of older optical media out there. When acquiring something like audio CDs or video games second-hand, it’s hard to have any expectation of a clean, readable disc. Even claims of a disc being tested are questionable, since it’s easy to pop in a game and see that it boots and decide the whole disc is good.

I recently ran into this with a Sega CD game I found, where the game worked great until I progressed to the next stage and the console would hang. Is the console broken or is the disc having issues? I wanted an independent way to verify these and came across qpxtool that can check error rates across a disc’s surface. The Fragile Surface: Preservation Assessment of Compact Disc Digital Audio – Electronic Media Review provides a nice introduction to the types of errors qpxtool identifies and some reasonable thresholds for quality.

Using a Plextor PX-716A drive, I’m able to verify that these older discs don’t have major issues prior to playing through a (potentially long) game. I can’t seem to get qpxtool to identify the drive on Windows, but that’s a project for another day.

Weekend vibes

I’ve apparently watched enough Adrian’s Digital Basement that I need to learn how to use an oscilloscope for my repair work.

Oscilloscope on work bench

Reading about region locking on the PC Engine/TurboGrafx consoles: apparently the locking mechanism is (mostly) based around reversing the data lines on the cards. Simple, inexpensive, and effective! nicole.express/2020/trad…

More typewriter art with the DaisyWriter (this is a scan of the print)

Typewriter Art with the DaisyWriter

Over the past few months, I’ve been writing code to create DaisyWriter control code from this algorithmic typewriter art algorithm (academic paper is in the GitHub repo). It wasn’t as trivial as it sounds!

Through removing some unnecessary code for my purposes and adding parallelism, I’ve been able to speed up the algorithm from days to hours. Creating a full-page image takes now approximately 6-8 hours and over 24GB of RAM. I believe I can get it faster, but not without substantial changes or a rewrite.

Converting the output of this algorithm to the DaisyKey protocol involved a lot of trial and error. The documentation, sadly, is not entirely clear and I needed to write commands directly to the printer to see how it reacts. My code outputs a file that can be copied directly to LPT1 in DOS.

Perhaps I’ll write more on this later, but for now, enjoy the attached scan of a printed image!

Picked up a Sony Watchman FD-20A at a flea market this weekend. Now thinking about building an RF transmitter…

Creating a Home TV Transmitter antiqueradio.org

Read: antiqueradio.org

Repairing a DaisyWriter

Back in February 2021, I bought a lot of older computer equipment on Craigslist. The year before, my pandemic project was building a DOS/Win98-era (but that’s a story for another time), and I had a few saved searches for parts. At the time, I was most interested in picking up a couple of CRT monitors.

At the pickup location, it seemed like we wouldn’t be able to fit everything in the car. We made it, barely, but I recall driving slowly and the rearview mirror being blocked. It took almost two weeks to work through everything to see what worked, what didn’t, what should be kept, and what was junk. The gear ranged from the early 80s through the early 00s and was a standard mix: CRT monitors, printers, accessories, and cables. One thing stuck out, though.

The DaisyWriter

The Printer

I hadn’t seen a printer quite like the DaisyWriter. The mechanism, a daisy wheel, turns out to be common; companies like Commodore, Tandy, and Brother made these for many years. Wheels contain a set of characters in a circle, and the printer will rotate the wheel to the desired character. These can be swapped as desired to change the type (for example, to print in script or italics). The mechanism is similar to a typewriter, since the character is pressed through a ribbon onto the paper. In many ways, the DaisyWriter is an automatic typewriter.

Sadly, when the printer was turned on, it would immediately make an alarm sound and the error light would turn on. Trying to send anything to the printer failed. I posted on Twitter about the DaisyWriter in February. I couldn’t find anything about this printer online, save a few mentions of it in lists of daisy wheel printers and a Chicago Tribune review from 1985. eBay had a single listing for a manual for the DaisyWriter. Once I ordered it, I put the printer away to tackle it later.

A near perfect printer. It retails for $1,195. — Peter McWilliams

Before I continue, I want to take a moment to note how incredibly lucky I was to find a DaisyWriter manual. This printer is a footnote in computing history at best. It configures with a bank of 24 unlabeled dip switches, and sounds a buzzer and lights a descriptive ERROR light when there’s a problem. Other than trial and error, there’s no way to know what the issue is.

Front panel of the DaisyWriterA view of failure from the computer

Repairing and Some Help

In September 2021, I received an email from Jonathan, who saw my tweets and shared his experience repairing his own DaisyWriter. He also has some manuals for this printer and uploaded them to the Internet Archive. I didn’t pick up the project again until November 2022, and I was fortunate that Jonathan replied and was still interested in this printer. Over the next couple of months, he and I exchanged several emails and I learned a lot about his repairs.

With manual in hand, I quickly resolved the first issue (and the one that was sounding the alarm in 2021): it was out of paper. Certain configurations of dip switches tell the printer if it has an automatic paper feeder, for example, and one behavior I noticed is that some of these settings cause the printer to check whether paper is present at power-on. It’s simple, but without the manual, I would not have known which dip switches to flip.

Thankfully, the manual also describes a testing procedure. A series of button presses on the front panel begins printing information about the printer and a test of all the characters on the daisy wheel. The printer would type all the characters and move the paper correctly, but it would only indent the paper and did not transfer ink. A simple fix, I thought.

I ordered a new ribbon, expecting the old one to be dry (and perhaps it was), and a week later installed it into the printer. The printer typed one or two characters with ink, then chewed a hole in the ribbon and tore it in half. I can’t remember how I knew this, but I recalled that you can tape ribbons back together. A few minutes later, the ribbon was back in service, but the printer was not.

This mechanism had old rubber that caused it to stick

Jonathan mentioned that he had to repair his printer’s carriage mechanism. There is a small piece of rubber on the underside that turns to goo. There’s an electromagnet that moves a weight that clicks back to the start position when the magnet disengages; when that weight hits the old rubber, it sticks. When that happens, the ribbon doesn’t advance (and the symptom for mine was the torn ribbon). The area isn’t particularly easy to reach, either! I tried to cheat and scrape out the old rubber from the side of the mechanism, but that didn’t correct it. Disassembly was challenging, but not impossible (though I did rip and repair a flex cable in the process). There are quite a few small gears and at least one C-clip that needs to be removed. Once everything was apart, it was simple to remove the old rubber and clean up the sticky residue that remained. That cleared up the ribbon issue, and I finally got a test page!

Success!

A Detour for the Paper Feeder

My printer came with a cut sheet feeder, which is only mentioned in the manual I have long enough to refer the reader to a different manual, which I don’t have. It seems to be a simple enough mechanism. As the platen turns, there’s a gear that turns; the feeder attaches to this gear. This turns a mechanism on the feeder which, every so often, turns a set of rubbered wheels to push the next piece of paper down. The only trouble was that it didn’t work!

Friction is created by a spring-loaded paper tray that pushes the paper towards the wheels. In my case, however, the wheels just spin on the paper. Jonathan pointed me in the direction of J.J. Short, who was able to create and apply new rubber for the wheels. The new rubber grips the paper well, but it still doesn’t reliably feed the paper.

Sadly, this part of the story doesn’t (yet) a happy ending. I’m not certain why the paper doesn’t feed reliably. My current guess is that the feeder’s mechanism is positioned incorrectly, so the printer is expecting the paper to be in a certain position when it isn’t. I’ve decided to put this aside for a while, and I’ll pick it up again later.

The paper feeder mechanism

Epilogue

This printer has been quite a project, and it still isn’t done. I’m excited to try a few new things with it, and I’ll post more on these separately!

Amazing weather in San Diego today for the first Workshop on SOC Operation and Construction!

This is a great introduction to the methods behind ChatGPT and some of its ML underpinnings. What is ChatGPT Doing and Why Does It Work? 📚

Looks like the House of the Dead monitor is working again. Just in time for Halloween! Can’t wait to get this installed in the cabinet this weekend.