Like many other people who make Atari 2600 cartridges, I have wanted to create one since I was a kid. No surprise there. But something separates me from the rest of the pack. I am not some 6502-super-coding-ninja. I know a bit of Assembly -- just enough to get me by. However, I've known for a while that that doesn't matter as much anymore. Knowing enough to get you by is enough to get an Atari VCS ROM modified, and that is pretty cool in itself.
Look at some of the modified VCS ROMs already in existence: some are heavily modified (i.e. Ms. Pac-man becoming Pac-Man), while others are less so (all the variations of Space Invaders with changed graphics). I decided that one day, I would modify a ROM. I modified a Space Invaders ROM a couple of years ago. Check out my step-by-step instructions on how it is done in this article:
I've had the idea in my head to make a cartridge for my friend Chris Federico as a personal gift for quite some time. He and I co-edited our newsletter (Orphaned Computers & Game Systems), and it seemed like the perfect gift. I figured that Christmas would be the best time to give it to him.
I knew what I wanted the gift to be, too: a letter. At first, I thought I could make a very short, stagnant letter display on the screen (just think of all that wonderful TV burn-in potential!). This would mean that I would have to learn to actually code for the VCS, a task that I didn't have time for if I wanted this gift ready by Christmas. Being pressed for time (okay, mostly just being lazy), I began to look around the Internet for some ready-made code that would fit the bill.
Randy from the Hozer Video Games website (http://www.hozervideo.com/) offered to burn a cartridge with a scrolling text message, but the length of 990 characters wasn't sufficient for my needs. However, a cartridge called Rime of the Ancient Mariner, Part One of Seven did seem to be exactly what the doctor ordered. I scoured the web for the source code, but could not find it anywhere. I finally came across the e-mail address of Bob Dodson, the guy who had made it. I sent him off a quick message and the next day, he sent me a reply with the source code as an attachment (Thank you, Bob!).
Here is a link to the assembly file for Rime of the Ancient Mariner, Part One of Seven that Bob Dodson sent to me. I used this to create Tear-Jerker 2000:
Rime of the Ancient Mariner, Part One of Seven - 6502 Assembly File
I do not know how the program works; I only know that it does work, and that it has allowed me to do what I want. I thought that at best, I would need to translate my still-to-be-written letter into hexadecimal. It turned out that changing the code was a snap! I was able to write my letter in Microsoft Word, make a macro to separate it into eight-character chunks surrounded by quote marks, and then just drop it into the code. The very first test-compile worked without a hitch, and the code ran great on a 2600 emulator.
That was when the real task began. I had a 2,984-byte letter to write, and I was determined to fit as much as I could into it. The first thing I did was to write a short letter and not worry about the length. The letter turned out to be quite a bit longer than I had expected. I didn't want to cut anything out, though. Would you? I slowly chopped that letter down in size without losing one idea. It is amazing just how frugal one can be with words and still get the exact same message out. The letter turned out perfect.
The final 6502 assembly file used to create Tear-Jerker 2000 is here:
Tear-Jerker 2000 - 6502 Assembly File
When the source assembly file is assembled with the DASM assembler, it creates the Tear-Jerker 2000 binary file, which I originally called chrislet.bin. I have renamed that to TearJerk.bin, as this makes more sense. It can be downloaded from here:
Tear-Jerker 2000 - Binary File
I loaded the ROM image on my Atari using my Starpath SuperCharger, and it worked great (as expected). Now I needed to get it burned to EPROM so that I could give my buddy a real, live Atari cartridge. Sean Kelly did that for me in record time (thanks, Sean). I was in business.
A re-used Asteroids cart arrived in the mail containing the burned Tear-Jerker 2000 image. I peeled off the unneeded Asteroids labels using label remover, and now had a blank cartridge. I downloaded an Atari font created by "ShyWedge." This is the font that I used to create the label:
atarian10.zip - Atari True Type Font for Windows
I was soon using Photoshop with the Atari fonts, and my digital camera to get the label I wanted. It was at this point that the final name of the cartridge went from being Christmas 2000 to Tear-Jerker 2000 (a reference to a statement in the letter on the cartridge). Not having a color printer, I gave the 10MB TIFF file to a Kinko's Copy Center and had the label printed on sticker paper. It turned out even better than I had expected. I stuck the label onto the blank cartridge, and the job was complete.
I sent the cartridge off to Chris in New York, only to be shocked to find out that the Atari 2600 that Chris had been using was dead. He couldn't find a replacement locally or get one online for a reasonable price. I posted a newsgroup message for Chris, and he ending up getting one for just two dollars plus shipping, thanks to "Solder_guy" (Thanks, Rob!).
In March 2012, I asked Chris if it was okay for me to post the Tear-Jerker 2000 binary, and the letter in text format, for others to use and read. He said that it was okay. The following is the letter that Chris read in January 2001. Please excuse the lack of paragraphs. I tried to make this as true to the original marquee scroll as possible:
My dear friend Chris Federico, Merry Christmas, 2000! You and I have exchanged letters over the years using IBM, Amiga, Atari, and C-64 computers. To that list add a most unusual form of communication: an Atari 2600 scrolling Marquee! Based upon past Christmas gifts, this letter/cartridge seems like an appropriate present. It surely is not the best letter I have ever written to you, but I believe that the impact of having it delivered on a 4K VCS cartridge will make it quite memorable. What does one say in a letter that has been burned on a ROM anyway? I have given it much thought and have decided that this may well be the perfect way to express to you the importance of our friendship. A few years ago our friendship was rekindled because of classic systems. Ten years had pasted, and we were talking again. This would not have occurred if it had not been for my job at Goodwill, a broken Commodore 64 and a friendly newsletter called OC&GS. We soon began spending our Sundays together and discovered that we enjoyed much of the same things. I remember your shock when you saw my collection of hundreds of VCS cartridges! You sat yourself down in front of my TV playing game after game. On occasion you would come up for air and ask, "You don't mind do ya?" You had no idea just how glad I was to be witness to someone enjoying Atari as much as me. Confession: until this very moment I thought that this piece of self-indulgence might come across as a bit loony, maybe even a little demented. Not many folks would understand why anyone would go through the trouble of writing a letter like this, while fewer still would understand when they received it. I think you will get it. Atari might have been the cement that bonded our early friendship, but it obviously grew from there. Soon I discovered that this waiter-guy was really cool in other ways too. He was a musician, a writer, a programmer. We don't see eye-to-eye on everything, but it does not matter, for our differences opened my world. Look here at three changes you made. If it were not for you: Frank Zappa would just be some musician to me, OC&GS would have been just three issues, and I probably would be divorced. You helped keep me sane and happy. Writing and editing together (discussing why Myst missed), exchanging music (Here is Zappa; Here are The Swans), talking over breakfast (Work sucks!), sharing computer and game playing expertise (getting you set up with an Amiga, you showing me the secret message in Adventure) and just hanging out has always been fun. When you moved away to N.Y. I didn't realize how much I would miss you. Uh-oh. Before this becomes a tear-jerker let me sum my thoughts up. It is my hope that one day you and I will live close enough together so that we can have breakfast a couple times a week. Though I will settle for seeing you next year at the Classic Gaming Expo. Your friend, Adam Trionfo - I single handedly used broken joysticks for Archon, yet STILL won.
The true conclusion of this episode would not be complete without snippets from an e-mail from Chris about his gift:
That's the most classy gift I've ever received, and out of everything I own, it has become, and will always be, my most prized possession... you [get] a million points (out of ten, oddly enough) in the "style" department! ...I have an amusing vision of some kid hunting for carts at a flea market in 2080, coming across Tear-Jerker 2000 and thinking, "Hmmm, this isn't in any of the collector's guides..."
So there you have it, the full story behind the only Tear-Jerker 2000 cartridge in existence. -- A.T.
Posted Fri Mar 16, 2012 6:18 PMA few days after that Kurt Woloch posted this message:
The scrollbar demos were something I posted to the stella mailing list in june / july 1999. Bob disassembled one of the demos and replaced my text with the mariner poem. Here is a link to the post that contains the source code to the last version of the scrolling text demo.
If you like, you can make your own version of it and put it on your website.
Posted Thu Mar 22, 2012 7:01 PMTo read the postings, check here at AtariAge.com:
That scrollbar demo actually was a joint effort. The first version which was pretty inefficient was done by John K. Harvey, and then I made suggestions on how it could be improved to be able to either fit in more text or reduce its size. Eckhard then picked up my suggestions and further added a proportional font. Some years, later, I recycled that code myself for the Creativision, and it ended up in the Creativision Diagnosticart which I helped to write for Luca Antignano. For this purpose, the scroll area was widened to 256 pixels across, using a whole page (256 bytes) as the buffer.