The Making of Fahrfall

Tuesday, May 5, 2015

Greetings Fahrfans! I have had an exciting couple of weeks, and I wanted to share a little news...

CoCoFEST!

Two weekends ago, I attended the 24th annual "Last" Chicago CoCoFEST! in Lombard, IL. Along with the usual participants, there were a number of new faces there. While I am sure there are many motivations to go to CoCoFEST!, I do take some measure of personal credit for getting the word out about CoCoFEST! and getting some newcomers to attend over the past several years.

I also engaged in the first sales of Fahrfall cartridges. I timed the one eBay auction for a Fahrfall cartridge to end at noon on the first day of CoCoFEST! It did not disappoint, closing at $113.50! In the 10 minutes or so after that, I sold the remaining six Fahrfall cartridges for a price of $40 each. Now if you want one, you'll have to send me a message to be added to the waiting list...

VCFSE

This past weekend, I packed-up once again and headed off to the Atlanta area for VCFSE 3.0. This was a nice event, with lots of participation from various parts of the vintage computing community. Alas, it mostly fell to me to represent the CoCo...but, Fahrve was up for the challenge! A number of new people got to experience Fahrfall and lots of other retro stuff.

Internet Archive

Now for the big news item -- Fahrfall is available live in your browser! Thanks to Jason Scott, the folks at the Internet Archive, and the magic known as JSMESS, now you can run Fahrfall almost effortlessly. All you have to do is access the right link -- enjoy!

I am very excited about Fahrfall being live on the Internet, and I hope you are too! As for what might come next...well, stay tuned!

Thursday, April 9, 2015

Fahrfall fans, I present to you the "CoCoFEST! Edition" of Fahrfall -- the first new CoCo game cartridge released in...decades?!?!

Fahrfall as a Program Pak

Limited Availability

I will have a limited number of Fahrfall cartridges available for sale at the 24th annual "Last" Chicago CoCoFEST! on April 25-26, 2015 in Lombard, IL. These will be available as shown above, with a physical Fahrfall cartridge and a plastic box with a printed Fahrfall cover insert. There is no manual, since I didn't write one... ;-)

I also intend to be at VCFSE 3.0 in Atlanta on May 2-3, 2015. I'm not sure I can sell any cartridges there, but at least you should be able to get a "hands on" look at the merchandise.

Auction Option

I do intend to put a single Fahrfall package up for sale on eBay, with the auction starting on April 18th and ending on April 25th. That's right, even if you are unable (or unwilling) to come to CoCoFEST!, you still have a chance at getting one of these packages! Watch this space, or setup a search for Fahrfall on eBay. If there are any packages left over after CoCoFEST! and VCFSE then I'll probably make those available on eBay as well.

More To Come?

Although the cartridge cases are poured resin, they do require some finish work and a fair amount of labor -- I consider them "hand made". Add to that the labor of assembling PCBs, burning EPROMs, cutting and stuffing printed materials, and applying labels. Economically, this is not the best use of my time! I am making these available out of a love for the CoCo and the people in the community. If there is strong interest in more Fahrfall cartridges then I will probably make more...sometime. I wish I could make a firmer commitment on that, but that is all I can say for now.

This is the culmination of a long term project. Fahrfall was the first
"serious" game I ever wrote, and it was my first involvement with Retrochallenge. I have learned a lot from this project, including not
only the treasured skills of a 6809 assembly language programmer but
also the arts and crafts skills associated with casting plastic resin,
producing nice boxes, etc. Now, I am giving my fellow fans of the Tandy
Color Computer what I hope is only the first of a series of homebrew
game cartridges. Some will come from me, and I hope that other CoCo
software developers will join me as well in the future!

So what comes next in Fahrve's adventures? Maybe a dalliance at KansasFest with the Apple of his eye? If you want to find out then you will have to stay tuned... ;-)

Sunday, August 3, 2014

Well, it seems that the overtime extension on this summer's Retrochallenge event has been wasted on me. So now it is time to lay down my tools and reflect...

Code Update

First, let's do one more beta release. There are no gameplay changes since Beta 2, but I did massage the audio a bit. Basically, I applied some modulation to the 60 Hz noise in the audio output. This seems to soften the effect of the noise, making it a bit more reasonable for those with sensitive ears. Don't worry -- the audiophiles will still hate it!

I've gotten a few suggestions for changes/improvements to Fahrfall, some better than others. There are a few minor ones that I might implement someday, including some (e.g. a graceful program exit) that are more suitable for disk-based play. But for now, I'm only concerned about releasing Fahrfall on cartridge. I do have a few more ideas for game improvements on my TODO list, most or all of which have been there since the beginning (e.g. collecting bonus items). I reserve the right to add a few of those before doing a final cartridge release.

Roadmap

I have been hinting rather strongly at a cartridge release for Fahrfall, and I do intend to make that happen. This entire Summer Challenge has been laying the groundwork to make that seem practical, and I think I've shown what I can deliver to folks. I have even started getting monetary offers for cartridges! I wish I was ready to announce something, but I haven't quite ironed-out all of the details of that. I hope to announce something before too long -- keep an eye out!

Ingredients for an adult-sized CoCo joystick?

Beyond that, it is hard to tell what comes next. I actually thought I would be working on another C compiler project this summer, but Fahrfall got my attention instead. Now I'm already thinking about another CoCo game controller project, but that will probably be covered over at my Retro Tinker blog. I've been thinking about another VDG trick that could use some development time as well. So much to do, so little time!

Parting Thoughts

So once again I have greatly enjoyed a Retrochallenge event. It is always fun to see what projects this motley band of fools generates, and to see what they produce as a result. Sometimes it is just nice to be reassured that out there in the world there are other people with the same kind of crazy as me. It is also good to have an excuse (or a reminder) to spend some time enjoying the hobby, and sometimes we all need that. And, of course, there is always the reward of seeing others get some enjoyment from the projects I share, whether they learn something from me or they just get some vicarious fun. :-)

So now I will sign out of the Retrochallenge 2014 Summer Challenge and we will return back to the everyday progress of Fahrfall. It is not Game Over yet, so please continue to stay tuned!

Thursday, July 31, 2014

The RC2014 Summer Challenge is coming to an end soon, so it is time to wrap things up. Let's finish-up with the Fahrfall cartridge and box it up!

Stick It

The plastic cartridge case I made is cool, but it is a little plain. At least it isn't black, so there should be little chance of confusing it with an original Tandy cartridge. Still, it might be nice to label it more clearly. If nothing else, that might prevent some confusion if there are more cartridges produced in the future... :-)

I have some graphics that I produced as collateral for promoting Fahrfall in the past. These include an emulator screen capture of the Fahrfall display on the title screen, and a PPM of Fahrve I produced from a manually edited hex dump. These were used both to produce some T-shirt designs at CafePress and to produce a QR code that directs readers to this blog. I have used the latter from time to time when showing Fahrfall at public events.

I used the graphics assets mentioned above to produce a cartridge case sticker for Fahrfall. The service I used is StickerYou, which offers a variety of options for sticker production and handy tools for producing sticker designs. I was able to layout a simple design which I think is attractive and which fits the cartridge case dimensions.

Applying the sticker was fairly simple. The stickers arrive in sheets of six, so I used scissors to isolate a single sticker for application. Using my mad dexterity and a squigee from a cell phone screen protector installation kit, I was able to get a smooth sticker application on the cartridge case. I think the resulting cartridge looks very nice.

Box It

A nicely decorated cartridge case is fine, but it lacks a certain completeness. A custom box would be nice, and that probably would not be out of the question. But, it might be a bit beyond my abilities or at least beyond the limits of my motivation!

Not too long ago I bought a newly produced game for another vintage system, and it came in a nice plastic box. That box turned-out to be a case for a VHS tape. These boxes are sturdy, and they are still available relatively cheaply. Maybe this is an option?

Many VHS cases were formed with protrusions that mated with the hubs in the VHS tapes. I'm not sure why these were deemed necessary, since the case cover fit the dimensions of the tape snugly already. If anyone knows why they existed, feel free to comment! Anyway, it is fairly easy to find cases without those protrusions, so that is what I have done. This presents a nice open space for holding any materials packaged with a game.

Of course, if you just throw the cartridge into the case it is not even close to filling the available space. I guess this isn't a big deal, but it seems a little wrong to have a case so big that the contents just bounce around inside of it. One option might be to produce some sort of insert. This would be a cardboard cutout or a formed piece of plastic that holds the cart while filling the available space in the case. This is in the same category as producing a paper box -- feasible, but beyond my skills, talents, or interests...
It occured to me that all that is needed is a small spacer to keep the cartridge from sliding around. In an earlier post, I showed how I made a box for pouring a mold out of a piece of foam board and some hot glue. I cut a rectangle from the foam scraps and glued it into place in the VHS case. This wasn't quite tall enough to prevent the cartridge from sliding around, so I added a second layer at the edge as well -- in the future I may just find a thicker piece of foam!

Dress It

Anyway, this simple modification to a reasonably available item makes for a nice solution to holding a cartridge. But, the outside is still a bit plain! Fortunately, the case selected has provisions for a paper insert as a cover. Now, we just need such an insert...

Producing a piece of paper covered in graphics is fairly simple, if you have a design -- any sufficiently capable printer will do! The hard part is having a design for the graphics. Fortunately I was able to use Scribus to handle this desktop publishing activity. I used the graphics assets I mentioned earlier (including the QR code), as well some writing and a little creative flair to produce what I feel is an attractive cover. I was then able to get this printed on a nice color laser printer, and I trimmed it to fit the available space on the VHS case. I think the result looks good -- definitely not bad for a guy that once got a 'C' in Art class! :-)

That basically covers things for the packaging of Fahrfall. The graphical bits could still change here and there, and a few things could be added in (or to) the box -- that spacer foam looks like a good space for a sticker of some sort! Nevertheless, the basics are all in place, and I think it looks good.

Today was the scheduled end for the RC2014 Summer Challenge event, but the Retrochallenge folks have declared an extension through Sunday. I may find a little time between now and then to poke a bit more at the Fahrfall code, or I may not. In any case, I expect to make at least one more wrap-up post before then. I hope you will stay tuned!

Monday, July 28, 2014

In the "Shaping Up" post, I glossed over the creation of the PCBs for the Fahrfall cartridges. These didn't just fall from the sky and you can't run down to Radio Shack to get them either! So, let's cover this topic...

Design

The circuit board for a game cartridge tends to be just a simple
"carrier board" for the EPROM containing the game. More advanced cartridges exist, even for the CoCo. But the starting point is just
enough circuitry to support attachment of a memory chip to the computer.Mark J. Blair, a member of the CoCo mailing list, designed such a board a
while back and made it available for ordering through OSH Park. He even
went a step further and made the design files available through GitHub. So if you need to make a ROM cartridge for a CoCo in a hurry,
then now you know a good way to get the PCBs!

Produce

The
boards from OSH Park are great, and the service is good. But the prices seem a little high and I wanted to checkout some alternatives anyway. I found Hackvana, which offers a variety of options at different price points. I
decided to use a green soldermask with the RoHS Pb-free solder finish, and I got a run of
boards at a much cheaper price per board. The boards look and work great, so I
couldn't be happier. (Note that the gold immersion finish would put the per board price much closer to the price available from OSH Park.)

Each board manufacturer tends to have slightly different preferences or requirements for how board designs are sent to them, and the Hackvana folks are no different. Mark used the Eagle PCB design software for his design, and Hackvana offers some design rules files for Eagle on their site. Fortunately the CadSoft folks also offer a free-as-in-beerLinux version of the Eagle software, and I was able to load the Hackvana rules into Mark's design files. I then used another Eagle script from Hackvana to produce the required Gerber files.

Since Mark's design is released under GPLv3, I have released a tarball at the link above with my Hackvana adaptation of Mark's design. The orginial OSH Park Gerber files are still there if you need them as well.

Build

Building the PCB is as simple as the design itself. There are barely any parts at all! The first step is to install the IC socket. This is not strictly necessary, but it does make it much easier to replace the EPROM if you want to burn a new release of Fahrfall! :-) Also included is a small capacitor used to stabilize the power supply for the EPROM.

Mark's design can accomodate a variety of EPROM parts. This gives some flexibility on how to populate the board, but it does require an extra step when building the cartridge hardware. In order to accomodate different chip types, there are actually two socket locations on the board. Choosing is not difficult -- use the one that matches the number of pins on the EPROM...

Slightly more difficult is handling the jumpers. Mark's schematic describes how the jumpers should be set for the various EPROM options. The PCB is intended to use removable jumpers on pin headers, but I didn't want to bother with those for this project. Instead, I just did a little sloppy soldering and bridged the connections I wanted. This saves me a little bit of wire trimming or parts acquisition and placement, at the cost of a little more trouble if I want to reuse the board with another EPROM later. But really, who would ever want to replace Fahrfall??

The final step is to install the EPROM programmed with the Fahrfall code. This requires some hardware that most people don't have. Fortunately for me, I acquired a nice MOD-EMUP-A almost 20 years ago when I was a more active arcade collector. I really like it, with the only caveat being that it requires an ISA card to interface to a PC running MS-DOS. But, it works great for retro project hacking -- get one if you can! ;-)

Anyway, that about sums-up the PCB build. From here the PCB is mounted in the cartridge case as shown in the earlier post. It really is cool to see Fahrfall start as soon as you power-up the CoCo, and the slightly faster clocking available when running from ROM makes the audio sound a bit better as well. I know I'm excited! Hopefully you are excited enough to stay tuned...

Sunday, July 27, 2014

Any form of casting will tend to produce some flash. These extra bits need to be removed from the parts during the finishing process. In the case of the open top molds I am using, that flash tends to be at the top part of the mold. Since it is difficult to make the pour fill the mold exactly with no overflow, the top tends to get an extra bit sticking out around the mold opening.

In order to remove the extra bits, I have used a sanding sponge. This is like a soft sanding block with the sandpaper already applied. They are convenient to use and easily adaptable to sand around corners and such. The downside is the manual labor. If I produce cartridge cases in quantity, I'll probably need to get a belt sander or some other labor-saving device.

Anyway, the sanding does remove some detail. Fortunately, what we are talking about is basically just a plastic box anyway. Besides, the rounded edges that result from the sanding have a nice "feel" in the hand, and they look a little more "hand crafted" than the injection molded cases from Tandy. Or, maybe they just look "hand made", but that is still good enough for me. I certainly hope that you agree! Drilling

Whether they look "custom" or just "hand made", the cases are no good without fasteners. They need a screw to hold them together and a couple more to hold the PCB for the game ROM.

The holes are, of course, made with drill bits. In this case, the plastic is soft and a little precision is required. So, I turned the drill bits by hand with just my fingers. I used bits with a hexagonal shank designed for use with one of those "quick change" drill attachments. The hex shank gives a little more room to grip the bit and makes it a bit easier to turn by hand. Also, on the top a countersink bit is used to allow the main screw to be driven all the way into the case body.

The holes are filled by some small screws. Using the screws from an original cartridge as a guide, I went to a local hardware store and found some that were approximately the same. The holes are drilled to match the inner diameter of the screw bodies, and the threads of the screws tap into the plastic as they are driven into the case.

Mounting

The whole point of having this case is to mount a PCB to hold an EPROM programmed with Fahrfall. Fortunately, a design is available for such a PCB, and I was able to have a batch of them manufactured by Hackvana. I will address the board design, production, and assembly in a later post.

The PCB is held into place by two screws. A third point of contact is provided by a plastic column molded into the cartridge case itself. This column is one of those parts of the mold that causes problems when casting, since air easily gets trapped in the small cavity representing it. The toothpick mentioned in the entry on casting happens to fit this hole perfectly! Anyway, this third point of contact helps to keep the PCB aligned to connect properly when the cartridge is plugged into the CoCo.

Once the PCB is secure, the cartridge can be assembled and screwed together. The hardware part of the project is now functional, if not quite complete. It still could use a little dressing-up! If you want to see what I do about that, then you'll just have to continue to stay tuned... :-)

Thursday, July 24, 2014

When last we left our intrepid crafter, we saw a completed silicone mold of the top half of a cartridge case. Now, let's put something in it!

Preparation

The mold is to be filled with a plastic resin. There are a huge variety of resins available. They vary in material, color, transparency, flexiblity and hardness. Honestly, I haven't messed with this stuff enough to have a well-informed opinion on the various choices. I do find that the materials available at my local hobby store seem to be adequate for the task at hand and are relatively easy to use.
For this part of the project I am using a two-part resin that is designed for hobbyist use. The picture on the box shows someone making a plastic car model. Some other products seem go be geared more towards people making decorative tchotchke items for flower pots, home decor, or whatever. Look around your local hobby store and I'm sure you can find something similar.

Other items shown are a piece cut from the bottom of a water bottle, and some toothpicks. The bottle bottom is where I mix the two parts of the resin right before pouring. The left over bits of the resin stick to the container used for the pour, so a disposable or recyclable container is needed unless you want to ruin your household items! A toothpick is used to probe low parts of the mold in hopes of releasing air bubbles after the pour.

In addition to the resin, I found some dye. The plastic I am using
cures to a beige color that isn't bad, but I thought it might be
nice to try adding some red instead. The dye is mixed into the clear part of the resin before the final mix. Be sure to remember how many drops you used if you want consistent results between multiple pours...

Pouring

There is not a lot to say about the pour itself. The two parts of the resin are poured into the container and mixed thoroughly. Be sure to mix well, or else the plastic may have sections that take longer to cure or which do not cure at all. The plastic shown tends to get some irregular coloring based on the quality of the mix. I like the marbled look that creates, but it also indicates the mix could be better...

The resin shown cures very quickly -- there is only about 90 seconds of pour time! This makes it difficult to get a good mix, and causes some anxiety during the pour. The item shown below was already hardening while I was still probing it with a toothpick, resulting in some irregularities near the surface toward the bottom.

Extraction

The plastic is hard enough to pull it from the mold within a few minutes, but I find that leaving it in the mold for 45+ minutes tends to get better results. Otherwise it is sometimes still soft enough to deform or even to get some blistering on the surface of the parts. Just be patient, and the parts will tend to come-out well!

Close inspection of the top of the piece reviews some roughness at the edges of where the mold openings had been. Some casting flash is inevitable with either a one-part or a two-part mold, so this is not unexpected. A little sanding will remove the roughness, albeit at the expense of the shiny finish on the top of the part. If you want to learn more about that and other post-casting finish work, then you'll have to stay tuned!