ATTENTION: PLEASE do not distribute YARS REVENGE without this !!!!!!!!! document, or the files listed at the bottom of this document. Thank you! -MIKE ---------------------------------------------------------------------- VERSION 1.0 Y A R S R E V E N G E THE QOTILE ULTIMATUM! FOR GAMEBOY(tm) ---------------------------------------------------------------------- Dedicated to Micki and Jenny because they accept our vices ---------------------------------------------------------------------- TABLE OF CONTENTS: 0.0 History 1.0 Why Yar's Revenge? 1.1 Z80, Gameboy(tm) and the Universe 1.2 YARS REVENGE <=> RAY'S REVENGE?? 1.3 Credit where credit is due! 2.0 "You're a fly named Yar on a quest in space..." 2.1 Scoring 2.2 Controls 2.3 Level Divisions 2.4 Different Qotiles! 3.0 Technical Information 3.1 Debug Game Variables 4.0 Who are these guys?! 4.1 Brains for Hire 5.0 Copyrights 6.0 Thanks to all our Gameboyz... 7.0 What is included 0.0 History Here is a documented project history. Not very useful, but helpful in tracking my insanity. I have an old school pride in getting things done QUICKLY. Thanks to folks mentioned throughout this document, I was able to do that. All work was done in my free time (Which is VERY limited when you work full-time). 12-13-96 ***** RELEASE DAY OF V1.0!! ***** Friday the 13th, our lucky day. Game appears to to be complete! Final stages of bug reporting. Initial release! Jeff Frohwein says it may not be able to be burned, first time hearing about update issues. I'm gonna order a smart card system! 12-12-96 Added pause, fixed some bugs, added level indicator. Bob informs me he has reached a score of 114,000. Can I beat it? looks like next week for release. Just have to bug check the whole thing. Already laying out plans for next project! Mars Attacks! comes out tomorrow at the show, how fitting... I got 245,853 points! 12-11-96 Fixed Quotile shooting bug (It didn't see you at the far right). Fixed startup shooting bug as well. Also put x-limit on shooting so you can't shoot cells from the far left! Fixed right boundary problems, fixed all collisions for better accuracy. Added more levels. Added hidden *LEVEL SELECT*. Added Qotile sound effects based on DX/DY. Added windup effect for Qotile spin. Bob got 140,000+ tonight! MY GOD! He's iNsAnE! I think a release is finally ready... a few more bug fixes. 12-10-96 Added High Score Keeping. It seems to work. Bob got 89,000+ last night! Wowza. Yar Overlay finished. Got a new colorscheme! Bob starts work on new driver, will be used in upcoming Gameboy(tm) title (Not Yars!). 12-09-96 Officially organized YARS.TXT and added GAME OVER screen. Damn, I need to organize my spaghetti- like code! Scoring and free live conditions set. 12-08-96 We now have score, levels, difficulty, intermission, lives. A new Intermission tune by Bob. Bob and Mike power-talk via e-mail. Many code swaps done through E-Mail. 12-07-96 We now have collisions, effects, etc. A sub-title screen offers copyright info. Sent source code to myself in a sealed, postage marked envelope for precautions. (Not to protect money making potential, just so I can take action against people who claim it is THEIR work. Feel free to rip my source, as I have done to others. But make sure you credit those people! I will gladly make source available to trustworthy fellows!) Also, I think I am wasting too many cycles. I will work on slashing code for next revision. 12-06-96 We have a Zorlon Cannon, a cruise missile.. No collisons. 12-05-96 We have music. My lame themes are replaced by Bob's wonderful tunes. Added more game elements. Ripped GBAPA2 for line drawing routine to shoot SWIRL. Took me too long to figure out. Wasted whole day! I'm a loser! 12-04-96 Yar's is working! I can recognize things. Got it moving with sound. Found out Yar's was Girlfriend's favorite game. I did it on purpose (wink...wink How did I know??) She still calls me a nerd. Bob wanted a sound tracker, he got one. The worst tracker ever made. You go Bob. 12-02-96 Added control. Wow, that HERO/ZERO document rules. POWER! Think I'll make YARS. 11-30-96 We have sound! Thanks PAN of Anthrox! I can also animate, Thanks me for being me! 11-29-96 My first sprite and PCX conversion. How good my little sprite looks over a picture of Shaft Daddy from the World Wide Waste (www.oeonline.com/~bip) 11-28-96 Wow, I got a screen up. It reads "John's Bogus Adventure by McNeff Games" (This was an inside joke that lead to my first contact with GB programming.) 1.0 Why Yar's Revenge? As a child, I spent countless hours playing Yar's Revenge on the Atari 2600. It wasn't until a few years ago that I found another copy of the game that included the comic book (Which was M.I.A. amongst my other comics). I again became addicted to the game when John Dullea's PC ATARI emulator came out. The choice was easy. Among all other classic games, Yar's was the way to go. 1.1 Z80, Gameboy(tm) and the Universe On 11-28-96, I downloaded a text file from a site on the internet called ANTHROX. In it, a fellow by the name of PAN supplied some technical information on the Gameboy(tm). After looking at it a while, I realised my classic C-64 assembly skills could be put to action and I quickly went to work on creating a text display. Thanks to people like Jeff Frohwein and the folks at Damaged Cybernetics, I was able to download so much information that in about a week I was able to get a working, playable, copy of Yar's Revenge. 1.2 YARS REVENGE <=> RAY'S REVENGE?? Oftentimes, when arcade games are copied for home video systems, the resulting game is a lackluster rendition of the original. However, the designer of Yars' Revenge, Howard Warshaw, avoided this potential problem. "The original assignment was to do the coin-op game Star Castle," said Warshaw, "But I felt that the game would translate poorly into the 2600. My objective when designing a game is to achieve good play, not copy something regardless. So I topologically reconfigured Star Castle, added a few twists, and voila, Yars' Revenge was born." Although the marketing department usually decides on the name for a particular game, Howard used a little ingenuity to get the name he wanted on the product. "Marketing was considering a number of very lame names for the game. So I invented Yars' Revenge and actually wrote the story for the game that was done in a comic book and released with the game. The way I did it was to write the story, then "leak" some info to marketing that would lock up the title. The reason it is named YARS' Revenge, is that YAR spelled backwards is RAY. The CEO of Atari at the time was RAY Kassar. I told one marketing dude that Ray knew of the naming and was enthusiastic about it. I told him to keep this info to himself, knowing that it would be all over marketing in 2 hours. I also figured that no one in marketing would have the gumption to talk to Ray about this. So, they informed me in a couple of days that this title had been selected. I out marketed marketing." While at Atari (1981-1984), Howard also worked on the games Raiders of the Lost Ark and ET. "Since I left Atari, I have gotten a California Real Estate Brokers license (hated real estate), written and published two books (one on a gambling card game called Pan, and another on how to have a stellar college career called Conquering College), I have done some teaching in business and some local colleges, I took the LSATs (91%), I am a photographer and recently received my certification in video production. I have already done a documentary on Russian immigration and a corporate piece for Tecnomatix." Warshaw is currently writing CAD applications for Tecnomatix in San Jose. * Ripped from Activision's Classic Action Pack - Please do not be offended Activision! 1.3 Credit where credit is due! (Original Game Credits for the Atari 2600) Original Cartridge Programmer ...Howard Scott Warshaw Writer ...Hope Shafer Illustrators ...Frank Cirocco Ray Garst Hiro Kimura Art Director ...Steve Hendricks 2.0 "You're a fly named Yar on a quest in space..." GAME PLAY The primary objective of the game is to break a path through the shield, and destroy the Qotile with a blast from the Zorlon Cannon. The secondary objective is to score as many points as possible. The shield is the moving area in front of the Qotile base. It appears in one of two shapes, as an arch, or a shifting rectangle. The shield is made up of cells. The Yar scout can destroy these cells by firing at them with energy missiles, from any location on the playfield, or by devouring them on direct contact. (The Zorlon Cannon can be used to demolish cells, but this is a waste of a powerful weapon.) Once a path has been cleared through the shield, the Zorlon Cannon must be used to destroy the Qotile. To call up the cannon, the Yar can either eat five cells, or run over the Qotile. The Zorlon Cannon appears on the far left side of the playfield, and moves in a direct line with the Yar. This means the Yar is in its line of fire. It is important, therefore, to aim the cannon at the Qotile, fire it, and fly out of the way FAST! The Qotile shoots off two weapons. The Destroyer Missile and Swirls. The Destroyer Missiles come in a more or less constant stream, one at a time. The Yar must do his best to dodge them. Periodically the Qotile turns into a Swirl. This Swirl winds up and rushes after the Yar. A Swirl can be destroyed with the Zorlon Cannon by hitting it either in its base location, or in mid-air. The further you go into the armada, the Swirl becomes increasingly dangerous. The glittering path down the center of the screen is the Neutral Zone. This area will protect a Yar from Destroyer Missiles, but not from Swirls. While in the Neutral Zone, a Yar cannot fire any energy missiles of his own. When a Yar is hit by a Destroyer Missile, a Swirl or his own Zorlon Cannon, he dies. Each player has four Yars (Turns) to play in a game. Additional Yars can be earned. 2.1 Scoring ACTIVITY POINTS BONUS Cell, hit by missile 1 Cell, devoured by Yar 5 Cell, hit by Zorlon 10 Qotile, destroyed 1000 Swirl, destroyed in place 2000 Swirl, destroyed in mid-air 6000 additional life 2.2 Controls ---------------------------------------------------------------------- GAMEBOY ACTION VGB-DOS ---------------------------------------------------------------------- D-PAD Moves Yar in any direction Cursor Keys/D-PAD BUTTON A Fire missile Left Alt/A BUTTON BUTTON B Fire Zorlon Cannon Left Cntrl/B BUTTON START Skip titles/Start Game/Pause Shift/C BUTTON SELECT Not Used. (?) Z/D BUTTON 2.3 Level Divisions There are about 8 different level divisions, designated by the Yar Commander's quote before each level. They are tightly spaced until you get into the higher levels, in which case the level divisions are about 60 levels apart! There are 255 levels before it flips. If you can get to level 255, you are too good for this game! 2.4 Different Qotiles! Yes, you heard it, throughout the heated battle different forms of Qotile will appear. Later in the fight, you go up against the Elite Qotile Destroyers, which are protected by gigantic shields! Also, beware of the Qotile tactics, they will do anything to destroy the Neutral Zone! If you can last that long, don't fret, Planet 3 has some tricks up their sleeves to destroy the Qotile's ability to protect themselves! 3.0 Technical Information If you have any questions on how we did it, we will gladly answer all e-mail (See Addresses Below). The music is tracked by a rather shoddy driver. It uses two track data and a third metronome track using the noise channel. A much more advanced tracker is in the works by Bob. Bob Baffy worked around my limited driver to produce the tunes you hear in the game. The graphics were created using Photoshop and GBCONVERT by HeroZero /OldSkool. I use 8x16 sprite mode to make life a little easier. I use two palettes, a flashing palette done by rotating the bits in the palette, and another that is the standard colors. I move the neutral zone and Qotile shield by rotating the bits left or right, depending on the case. I compile my work with TASM and the TASM69.TAB by Jeff Frohwein. I find that TASM is my favorite only because I know how to use it, and Jeff answers my questions! Thanks Jeff! I got around the 32k barrier by simply addressing the $014000, and then padding it, then using the LD $2000,#. Works like a charm. All my variables are in $c000 and $a000. Why? I felt like it. I split the two after I saw the GBAPA2 technical code that used variables in TASM. I used his variable space ($c000) by default. I also ripped his line drawing routine to figure out how to make the Qotile swirl aim at the yar. You have to respect the GBAPA2... I tried everything on VGB-DOS by Marcel De Kogel. Thanks Marcel for the incredible emulator! If someone tries it on a Gameboy(tm) and it works, let me know, please! I'm thinking about getting a Smart Card Backup System. Somebody give me some information on this, or if you know of anyone who produces GB carts, I want to tote my Yar's around! I use GBTOOL by Rip of Masters of Magic to redo the complement check and CRC check. Why? Because of the 32k limit on the crc.exe prg by Jeff. If you are writing under 32k, I highly recommend CRC.EXE for speed. How do I scroll the screen? I use the built in scrolling on the Gameboy(tm). The background stars are simply sprites to give the illusion of object scrolling. It was a good speed and programming trick on my part. ;) I mapped everything by hand because I was too lazy to program an editor, and all current editors do not work on my system for one reason or another. I hope to make a map and character set editor soon. Like Yars maps are complicated... 3.1 Debug Game Variables BANK 0 $a000 Yar Frame $a01e Zorlon 0=no 1+=yes $a001 Anim count $a01f Yar Lives Counter $a002 Yar X $a020 How much cells eaten? $a003 Yar Y $a021 Death Pause $a004 Last Control input $a022 D.Timer A $a005 Shot DX $a023 D.Timer B $a006 Shot DY $a024 Screen Wipe A Win! $a007 Active Shot DX $a025 Screen Wipe B Win! $a008 Active Shot DY $a026 Screen Wipe C Win! $a009 Shot Life $a027 Level # $a00a SPR/BG X $ffx$ff to 32x32 $a028 Shield Scroll Delay Timer $a00b SPR/BG Y $ffx$ff to 32x32 $a029 Shield Speed $a00c Eat Count (Slow down eating) $a02a Swirl Attack Delay $a00d Scroll fort up/down (0/1) $a02b Intermission Text Pointer $a00e Character Beneath Yar $a02c Shield Morph Timer A $a00f Destroyer Missile Speed $a02d Shield Morph Timer B $a010 ---- $a02e Score Digit $a011 Base Shot Info A $a02f Score Digit $a012 Base Shot Info B $a030 Score Digit $a013 Shoot Swirl? 0=no 1=yes $a031 Score Digit $a014 Qotile Frame Count $a032 Score Digit $a015 Qotile Shot Speed $a033 Score Digit $a016 Qotile Mode 0=normal 1+=Deadly $a034 HiScore Digit $a017 Counter Space 1 $a035 HiScore Digit $a018 Counter Space 2 $a036 HiScore Digit $a019 Counter Space 3 $a037 HiScore Digit $a01a Counter Space 4 $a038 HiScore Digit $a01b Destroyer Missile Speed $a039 HiScore Digit $a01c Yar Dead? 0=no 1+=yes $a03a Pause toggle $a01d In Neutral Zone? 0=no 1+=yes 4.0 Who are these guys?! Bob Baffy is a Web Designer, Artist, Music Engineer and Game Designer. He works two jobs, one at a prestigious company, and the other at Genetic Fantasia. You can reach him at bip@oeonline.com. He is a nice guy and is willing to outsource his talent as well through Genetic Fantasia. He has a family to feed, we can't give away ALL our work. Mike Mika is a Programmer, Artist and Game Designer. He works two jobs as well, one at a PC/POS/AUTO ID Distributor, and the other at Genetic Fantasia. (No more third person) I can be reached at mikam@smurfy.tcimet.net. I'll answer all your questions if they are good (Just kidding!). I encourage anyone with a passion for programming to contact me. Genetic Fantasia was founded in 1995 by Jeff Burke, Bob Baffy and Mike Mika. It was created to develop software for the Atari Jaguar. It's potential claim to fame would have been Bomberman Legends, an Eight Player multi-link version of the Hudson Soft hit series. Though development was nearly finished, it was stopped when Atari could not negotiate the license. No attempt to modify the game to every legal avenue was made to release the title because Atari hit the bottom by this time. Other projects in the works are now being refitted for the PC and Playstation. Current staff is five people, spread over every facet of development. 4.1 Brains for Hire Genetic Fantasia is a third party developer willing to work on your projects. We can support your visual and audio needs, as well as consult with you about game design. We also have a series of games being dveloped that have not yet been marketed to publishers. If you are a publisher who is interested in what we have to offer, please contact us. If you are a developer who needs a helping hand, we are ready to go. 5.0 Copyrights Yars' Revenge is Copyright 1982 Atari, Inc. The gameboy code is copyright 1996 by Mike Mika and Genetic Fantasia. This game is free to everyone. The source will be made available to those who need it (Be forewarned, it is creepy). Gameboy is copyright and trademarked by Nintendo. 6.0 Thanks to all our Gameboyz... (Though they probably don't know us!) PAN of Anthrox (And all of Anthrox), Jeff Frohwein, Marat Fayzullin, Marcel De Kogel, Dave of Dave's Videogame Classics, Rip of Masters of Magic, HeroZero/OldSkool, DiskDude, Sean Whalen of Siamese Dream, all the guys at Damaged Cybernetics, MegaMan X, Yoshi, John Dullea, Sean Kelly, Nintendo, Norman Nithman, Matt Currie, Micah Dowty, Bob also thanks Mike for the introduction to assembly, which has renewed his interest in programming and restored his faith in humanity! ;) Howard Warshaw, Santa Claus (Thanks for the fruitful years), Jeff Burke, Jeremy Mika, Eric Auger, Typhoon Z, Big Weird, Vilewrath, Avatar Z, Bill 'The Classic Video Game Nut' McNeff, John Morawiec, Eugene Jarvis, Jeff Minter and Nolan Bushnell! 7.0 What you should have: yar.gb -The game! yar.gif -The Super Stylin' Yars Overlay for VGB-DOS yar.txt -This text file yar.jpg -Yar's Revenge Conceptual Cover Art (We can dream) yar.bat -Batch file to run Yars with VGB-DOS SCHEMES