We’ve talked about the benefits of becoming an Autopian member before: it helps to support good, independent media in these difficult times, I’ll draw you a car for your birthday, you’ll get some great swag and merch, and you’ll be privy to special content, events, and warm hugs from Autopian staffers (consent permitting).
For those Autopian Velour and RCL members who renewed, I want to give a rundown of a new perk, one that replaces the hand-drawn car drawing on your birthday: a unique, custom-generated robot image made with hand-drawn graphics by me and rendered on a real 1982-vintage Apple ][+ computer.
If you’ll indulge me, I’d like to explain why I’m doing this and why I think it’s cool – and force you to understand a bit about the strange world of 1970s computer graphics.
Okay, Why?
First, I should explain why we’re doing this thing that, upon first glance, seems painfully close to all that NFT bullshit that was urinating in the soup of human culture not that long ago. The goal wasn’t anything like that. The goal was to give myself a bit of a break! You see, I love doing car drawings for members, but when we promised that, we didn’t think through what that would mean as things scaled up, and for renewing members. Would I need to draw cars for every member’s birthday, every year? I’m already so behind on drawings! I needed to figure out some way to get renewing members something unique, hand-made, and cool without, you know, pushing myself too far. Because I, uh, shouldn’t.
So, some way to automate these member drawings would be good! But I don’t want to use some AI image generator like Midjourney or whatever – that feels wrong, and part of what we want to offer our members is something personal, something that actually comes from me, because I appreciate every member, dammit. Some cold, unfeeling AI can’t do that!
That’s when I realized I could leverage my other, non-car obsession – archaic computers – into helping me out, for a change. I could automate the process of art-making by hand-making a lot of graphical pieces, and then writing a program in BASIC to randomly put those parts together to make something unique and fun! That way, members get a unique bit of art – or at least something art-adjacent – that I hand-made, while at the same time could be automatically generated in quantity.
Okay, But Why Robots?
In the interests of full disclosure, I have to tell you that David has issues with this part of the project. David, quite reasonably, notes that this is a car website, and we should be delivering car images to our members, not robots! David was a bit indignant about this, and even spit-took some of the PB Blaster cocktail he was drinking in rage when he found out about the robots.
And, yes, I agree, cars would be ideal! But I decided to go with robots – for this year at least, I think I will be making car graphics for next year’s renewal images – for one very good reason, which I think you can infer from this image of the Apple //c system running the software I use to make the graphical elements:
Making the graphics is an ass-pain. For this to work, I need a lot of discrete elements I can mix-and-match to create whole images. These graphics are made individually and stored in something Applesoft BASIC calls a shape table. I use a utility from 1984, called The Complete Graphics System from Penguin software to build my shape tables, and I use that joystick you see there to do so. It is a tedious process, with a capital -edious, and I had already built the set of robot heads and bodies and legs, so I figured why not leverage them for this? Robots are sort of in the general Autopian wheelhouse, sort of, right? I mean, I like them?
Look, David isn’t wrong, but also I don’t think it’s a horrible affront to offer robots here. We’ll do cars for next years’ birthdays, okay? I just need some time to build all those elements!
Let’s Talk About How Weird Apple II Graphics Are
Now, part of the reason why I’m so into this ridiculous stuff is that I have a strange fetish, artistically, for limitations. I love limitations. Limitations force creativity to thrive, and the stranger the limitations, the better. The Apple II platform, first developed in 1977, is an absolute bouquet of strange and fascinating and difficult graphical limitations, and so I find it really rewarding to work with.
The Apple II was the first personal computer normal people could consider owning that was even capable of color graphics. The way the Apple II managed to provide color graphics in an era long before specialized graphics chips or cards or standards is a tribute to the incredible genius and creativity of its designer, Steve Wozniak. All Apple II color graphics are possible because of quirks in the way televisions draw images on screens. As far as the Apple II knows, it’s just generating black and white pixels, that’s it.
But, when patterns of those pixels are sent out as an NTSC video signal, they get interpreted as colors, thanks to something known as artifact color. The Apple II isn’t really generating a color signal – it’s generating a series of pixels that the display device – a TV or monitor or projector or whatever – confuses for colors, but the end result is color on the screen, so that’s good enough!
Here, look at this. This is how the robot looks on a color monitor:
But, on a monochrome monitor, you can see how the colors are really generated: patterns of vertical lines:
Those images are from an emulator; on a real CRT monitor, you can see color fringing on the vertical lines of the text, too, since the monitor is trying to interpret those lines as color:
Weird, right? Now, these vertical line patterns are just even or odd: so, even lines are green, odd are purple, two dots next to one another are white, and all off is black. So that’s four colors. But the Apple II high-resolution screen can do six colors! How is that possible?
Well, it’s possible with more weirdness, specifically moving things a half pixel. Yes, the Apple II can shift pixels by half-pixels if needed to get two more colors. That also means even though the screen is 280×192 pixels big, which by modern standards is tiny, as you can see here with this actual-size 280×192 image:
…but it also means it can really place pixels at 560 points across the screen. Of course, because color requires even/odd pixel patterns, the effective resolution for color is only 140 pixels wide. But you can mix monochrome 280-pixel images on the same screen, if you want. This also means that the set of colors from the half-pixel-shifted set (orange and blue, if you’re wondering) will clash with the green/purple colors, so you have to be careful about having them next to one another, horizontally.
So, when I build the robots, I do some things to get the most colors I can per robot. Since each robot is made of a randomly-selected head, midsection, and lower body, before I draw each segment I randomly pick which color group will be used. Each color group has its own black and white, and by filling in the area where the robot part will be drawn with the black from a given group, I am moving the pixels in that area a half-pixel either way.
So, if the random number generator says use color group 1, the pixels don’t shift. If the random generator says use color group 2, I fill the area with the other black, and shift the pixels by a half-pixel, meaning the image I draw there will use orange, blue, white and black instead of green, purple, white and black. Here’s an example where the top two segments use color group 1, and the bottom segment uses color group 2:
It seems like an ass-pain, right? And yeah, it kinda is, but it’s also how you got full-color (well, six color) high-resolution graphics without expensive specialized hardware back in 1977!
Also, I love this kind of crap. I love the slightly blurry look of the colors on a composite CRT monitor, I love all the crazy hoops I have to jump through to get lots of colors in these robots, this sort of inanity is my kink.
How Do I Get It From That Old-Ass Computer To You?
I could keep going on Apple II graphical weirdness, but I’m not that cruel. Besides, there’s another mystery to sort out here: how are we getting images generated on a 1982 Apple II Plus onto the internet? This part is a big deal for me, because I do not want to use an emulator or anything like that – these images need to be generated on real hardware, because that’s important to me, and, I hope, you. Also, I want the look of a real CRT, because emulators just don’t quite do Apple II graphics justice.
So, to manage this, I’m leveraging one of my favorite parts of the Apple II design: the Game I/O port.
You see, the Apple II had a really interesting game port, something that was normally used to plug in joysticks and paddles for games, but could be used for so much more. In addition to the inputs for push buttons and paddle potentiometers, the internal game port also had outputs, called “annunciators,” and these could send a small amount of voltage as a signal to a given pin on the port based on program control.
This allowed for all sorts of things: people have built MIDI interfaces and robot-arm controllers and home automation systems for the game port, so why can’t I use it to make things for Velour and RCL members?
So, here’s what I did: I used one of the annunciator ports and connected it to a little relay, which I then connected to a jack that would plug into the remote trigger port of this Canon DSLR camera I had laying around. Well, my friend Rob Terrell actually was nice enough to build the cable for me, so thanks, Rob.
In my BASIC program, after I generate the robot image and then randomly pick the robot’s name and display it all, I tell the computer to POKE -16295,0 which triggers Annunciator 0 at pin 15 to fire, which triggers the camera shutter, taking a picture of the Apple II’s CRT screen. Then, I reset the annunciator, clear the screen, and start over!
And, it mostly works! Sure, I get some unwanted reflections on the screen at times, and sometimes the flash wants to go off and that screws up the timing of things, but for the most part, I can get about 250 robot pictures taken before the battery dies.
Here it is in action:
So, this is all a hell of a lot of explanation for why renewing members will get silly-looking 8-bit robots with funny names on their birthdays. Even if David doesn’t like the idea of robots, I know he likes the idea of deep, technical dives, so hopefully this has made him at least a little happy.
For everyone else, I hope you like your new robot pals! They were made with love and, yes, a lot of healthy tedium!
Another Reason To Be An Autopian Member: I’ll Draw You A Damn Car
Car And Driver Cuts Half Its Issues As Media Continues To Feel Like It’s Dying
I Draw Custom Cars For Autopian Members But, My God, Why Are No Two Requests The Same?!
Holy crap I did not understand anything about this setup. However if it helps you with your staying aliveness then that’s awesome though.
Sadly your payment service provider is insisting on my providing a Zip code in the payment form, which of course is a death sentence for persons using cards outside of the US. After 7 attempts I’m giving up.
So this means that I /would/ be a Autopian Foreign Legion Vinyl member if I could, but I can’t. Maybe one of you Autopian site mechanics can figure out a solution. Google Pay doesn’t work either…
Christian in Paris
I am also in Europe and a vinyl member. I do not remember how,but I managed to put everything in the registration and it is renewed every month automatically.
My credit card company flagged my most recent attempt, which actually means I get to talk to a human being and get this sorted. A pyrrhique victory if there ever was one 😉 Appreciate the input!
Victory!! Soothed the credit card folks, tried again, “00000” as the zip code, as appears to work in some cases, and Bob’s yer uncle 😉
Wow….the vintage hardware, and the vintage Canon camera!
Ok, you beautiful lunatic, membership upgraded.
We are a car site but… Oh hell yeah!! Let’s have a little side tangent weirdo 70s thru early 90s vintage computer thing going on. We can discuss the perils of IRQ conflicts, the tribulations of extended and expanded memory, OpenGL gaming, MIDI fun and more.
Some of us are battling 1980’s electronics in our cars… see that sorta segues haha
❤️
Those in the Broadcast TV business tended to call the 525 scan line NTSC standard Never Twice the Same Color, than the official National Television System Committee standard, from all those artifacts.
I have very little interest in commercial buses, the intricacies and obsessions of the Jeep faithful’s world nor do I find the variations of Beatle offshoots as fascinating as you Torch. And yet, I read articles on all of the above with glee and the abandon of a kid on Christmas morning.
David is right, robots don’t make sense but I don’t care, I would love a little robot buddy (if I could afford a higher level membership) if only because you all make everything so interesting.
Ah, the days when you could just poke memory locations to make things happen. When I took an intro to OpenGL course only a few years after writing games in BASIC it blew my mind how far computer graphics had come in a short span of time.
Jason, I love this so much! It is so incredibly cool and I am 100% there for it. I’m also absolutely overflowing with envy.
I would assume there’s some sort of power adapter so the batt doesn’t run out, but you may not care enough about that minor inconvenience.
This was a bit before my time — my first computer was an Apple IIGS — but I love seeing vintage setups like this. Many car enthusiasts are into various aspects of engineering; maintaining and using an older computer is a type of engineering, therefore these cute lil’ randomly generated robots belong on this website.
I spend hours in my bathroom watching vintage computer Youtube videos.
Did you know that the Atari 2600 Pitfall game generated all the maps at random to save memory? But since it didn’t have a strong random number generator and started with the same seed every time, the game always displayed the same maps in the same order. But they were actually random.
I love all the clever hacks game developers used in the 80s, like squeaking extra colors out of old display hardware. I still have the Apple 2+ that my parents brought into our home in 1982. I owe my career to it.
I didn’t know that, awesome.
I played the shit out of that game, was one of my favorites. I remember it being varied and interesting.
I tried it in an emulator a few months ago. Don’t recommend the experience. Another bit of my childhood ruined.
The (only slightly more) modern term for that is “procedural generation”. It’s still used today in games like Starfield to place (eg) trees randomly on a landscape, but as it uses a fixed seed, they’re in the same place for every player, whilst still looking random. ‘Predictably random’ if you will.
Or if you pick the right seed, you can use a random generator to ‘compress’ a whole song into a tiny program, like this demo which fits an entire tune and visuals in 256 bytes. That’s smaller than this comment!
https://www.youtube.com/watch?v=sWblpsLZ-O8
I for one welcome our future robot overlords. David is going to be given a crappy job in our future robot led society with an attitude like that.
This is a tour de force
Jason… maybe it’s time to consider that upgrade… The good ol’ commodore 64 makes color natively unlike the apple ][ series (what you say? they made an apple //gs? for graphics AND sound?). If anything, you can let the SID chip rip some great tunes while you work. As much as I’m an apple stan these days, back then the C64 was the machine to beat.
The C64 was important because it allowed Commodore to build the Amiga 😉
Ah, programming and computers when mere mortals could actually understand what is going on under the hood. I miss those days. This morning I jacked up my blood pressure trying to install some Hue lights and a controller- which even though I have some familiarity with its ZigBee underpinnings is black magic and more than once I uttered “this app sucks” (to an empty house – the app is 90% amazing and 10% incredibly frustrating – like they never play tested the thing with mere mortals). It would likely be more fun and less functional to use an old IIe game port.
And David, once again, is wrong about his readership – we love this kinda stuff (along with more than a passing understanding of South Park). Btw I think I saw the original Blues Brothers movie is now on Netflix- so David had no excuse to not watch it!
My first computer was an IBM PC/XT. My Dad was a computer engineer for GM in the 80’s so I was very lucky to have access to all that futuristic tech! Didn’t see Apple until high school. Loved both.
Awesome! Thanks for the write up. I had no idea the tricks you could do with half-pixel shifting!
I’m going to copy OldJackBurton, as he posted the perfect response:
10 Print “Torch Rocks!”;
20 Goto 10
😀
This is actually quite brilliant: if something annoys/upsets David, just tell him how complicated it is, and how hard it is to do, and he’s happy. It makes perfect sense when you think about it.
This is excellent and is obviously going to be loved by damn near everyone that gets one, knowing this audience.
They kinda remind me of Robots from the movie Robots which had a very mechanical asthetic to the robots, feel like I’m saying robots a lot, robot robot robot, no I feel like I’m singing a Tatu song, I think they’re cool though, I might consider signing up!
Just when I thought I was getting used to the derangement of the Torch-mind, it shows me another piece of itself.
The annunciator pin trigger is freaking genius.
Self-driving cars are robots. This is 100% legit for a car publication.
You’re making me want to fire up my IIC! Just gotta uncrunch the keyboard, can’t complain for $20 with 2 disc drives though