2600 Adventure for the Atari 8-bit computer, by Tony Ramos With interest in Atari emulators now growing, and the progress made on emulating the Atari 2600 (Activision's upcoming product) and the 8-bit computer (Darek Mihocka's XFormer 3.0 for IBM compatibles), many people are hoping to see at long last an Atari 2600 emulator for the IBM PC. Although hardly a solution, I feel it is time to present some work I did a long while ago: An Atari 8-bit version of 2600 Adventure. Don't get too excited: there's no sound, lots of things are broken or just plain unfinished, and on a good day it's maybe 1/3 the speed of the real thing. However, I did manage to get the graphics and movement dynamics pixel- and frame- perfect, and even made room and data editors for constructing new worlds. First, some background info: I'll try to keep this short. I had my first encounter with the Atari VCS when I was perhaps 12 or 13 years old, and my mother visited a friend of hers whose children had one. One of the games they had was Adventure, which made such an impression on me I became fascinated with the possibilities of creating environments using computers. 14 years later, in 1986, I had just finished Parrot, a digital sound sampler for the Atari 8-bit, and was beginning the first year of my computer science degree. As a programming challenge, and in tribute to Warren Robinett's amazing work, I attempted to re-create 2600 Adventure on my Atari 8-bit computer. I videotaped several game sessions, digitized and slowed down the sound effects, and made many charts and graphs. Unfortuately my programming expertise was limited to Atari BASIC and simple assembly language routines. Here are the unfinished results of that effort. The executable, ADVNTRE1.COM, is Atari BASIC with M/L subroutines, compiled using A Basic Compiler. It loads the data file ORIGINAL.ADV, which contains all the room, object, and linking data for the kingdom. Also included are ROOMMAKE.BAS, a room editor; TABLMAKE.BAS, a room link editor; and LUMP.BAS, MAKE.BAS, etc. which build the final data file. Here is some more info about each program: ADVNTRE1.COM ------------ When the program starts a ? prompt appears, requesting the number of jiffies to spend on each 'frame' of action. Entering a number between 8 and 12 works reasonably well; faster causes the game to pause and resume intermittently. Option is Color-B/W toggle, Select is Game Select, and Start is Game Reset. The lower-case b's above the screen are the two difficulty switches. Pressing '1' and '2' toggle them between b and a. ROOMMAKE.BAS ------------ This is the room editor, which creates the file SCREENS.DAT. Screens are drawn using a joystick in port one. Holding the fire button erases blocks. Pressing 'R' doubles the width of the cursor, 'M' toggles the mirroring feature, and 'S' saves the changes and quits. Typing two numeric digits, i.e. '01', '02' etc. switches to different rooms. TABLMAKE.BAS ------------ This editor creates the room attributes and links the rooms together. Type the number of a line, 0-6, to choose a parameter, then type a new value and press . This editor creates the data file for level 1; TABLMAK2.BAS creates level 2. DATMAKE.BAS ----------- Contains all object bitmaps and color information; loads room and link data and writes the complete '*.ADV' game file. The editors were written quick-and-dirty; any similarity to my idea of good interface design is entirely coincidental ;-) With the source code for the original cart floating around, it shouldn't be too long before we have a proper port; and now that we have a good 8-bit emulator, a 2600->8-bit conversion makes sense too. Have fun picking this apart...don't be too hard on me, I program much better now...honest. -Tony R. Tony Ramos : inter\active 286 E.13th Ave : ramos.15@osu.edu, tony_ramos@fitch.com Columbus, OH 43201 : *** computer-mediated environments *** (614)299-9529 : *** interface ** image synthesis ***