November 2013 Thadoss proudly presents Racer Falcon030 version 1st at sillyventure 2013 About ----- Racer is my second game for the Atari Falcon030 computer. This is a 100% homebrew game. This is my second big production for my beloved computer (after Beats of Rage), and I'm happy and proud to share it with all the Falcon people who still make the dream a reality. Requirements ------------ To run this game you need: - An Atari Falcon030 with at least 4MB of RAM - At least 15MB of hard disk space - One or more of the following input devices: - a Jagpad - A joystick plugged into the port 1 - The Falcon keyboard - The game runs on both RGB and VGA screens Falcon accelerators like the Centurbo CT2 or CT60 have not been tested. (I don't own one of them), but the game should work. If you have a 4MB machine, try to free up as much memory as possible. The game needs a lot of memory due to the backgrounds and cars. Installation ------------ Just uncompress the zip file in a folder of your harddrive and lauch the game. Files content ------------- RACER030.PRG : the full 68030 game exe RACERDSP.PRG : the 68030+DSP game exe RACER.DAT : contains the options preferences and the best times and best scores for each race. README.TXT : this file /DATA : the datas (images, musics, circuits definitions) /SYS : some technical files for the game /2_VBL.BUG : double VBL patched exe. - RAC_0302.PRG : the 030 version, with double VBL fix - RAC_DSP2.PRG : the DSP version, with double VBL fix I've made 2 versions of the game : one 100% coded in pure 030 asm and one which use the DSP for the road computing. The DSP version should be a bit faster but some players may encounter some problems with it. The 030 version should be a bit slower (not that much). This version works better with HATARI (the sound is cleaner, and no lag). It should be used also with accelerated cards. If you encounter a problem of double VBL bug with your monitor or a video projector, you can try the 2 programs in the directory /2_VBL.BUG. You just have to copy the files in the main directory of the game. They should be used only in this case. RACER.DAT contains all the best scores and times of each level. If you want to reset these values, you can just delete this file. The game will automa- tically create a new one with the defaults values. Deleting the file will reset your options preferences to the defaults values. You can select them again later in the main menu. Gameplay -------- Just take pleasure to drive fast on the roads, avoid the other drivers and make the best time and/or the best score on each race. You can drive on 4 different circuits. Each one is specific. Circuit 1 : The race This circuit is a race against 7 opponents. Try to be the first one on the finish line. Circuit 2 : The casino On this circuit, you'll drive wrong way. Try to finish the race and don't bump into the other cars. Circuit 3 : The dark castle This circuit is a race against 7 opponents. Try to be the first one on the finish line. Circuit 4 : Africa This circuit is a "outrun" like race. Try to finish the race without bumping into the opponents. Controls (keyboard keys) ------------------------ UP : up arrow DOWN : down arrow LEFT : left arrow RIGHT : right arrow FIRE BUTTON : left shift BONUS ACTION: right shift or alternate GEAR UP : up arrow + left shift GEAR DOWN : down arrow + left shift PAUSE : p key EXIT : esc key Controls (joystick) ------------------- UP : up DOWN : down LEFT : left RIGHT : right FIRE BUTTON : fire BONUS ACTION: fire (only fire) GEAR UP : up + fire GEAR DOWN : down + fire PAUSE : p key EXIT : esc key Controls (jagpag) ----------------- UP : up DOWN : down LEFT : left RIGHT : right FIRE BUTTON : fire A or fire B BONUS ACTION: fire C GEAR UP : up + fire A or fire B GEAR DOWN : down + fire A or fire B PAUSE : PAUSE key EXIT : esc key Bonuses list ------------ Bell : all the visible opponents are ejected to the sides of the road Bomb : the closest opponent's speed is reduced to zero Boxing glove : bump into a car ejects the other car Crystal bowl : teleport the player to 200 meters Falling star : freeze the time counter for 10 seconds Maxibomb : all the visible opponent's speed is reduced to zero Missile : the player max speed increase to 500 km/h during 10 seconds Horn : the closest opponent is ejected to the side of the road Rainbow : invert the driver's left/right commands during 5 seconds Shoes : the player max speed increase to 400 km/h during 10 seconds remote control : freeze the time counter for 5 seconds Some bonuses are automatic ; some others have to be triggered to be activated. Some bonuses are better to be used near the opponents, whereas some other should be used far from the oponents. You'll have to learn how to use them. Rainbow is the only malus of the game. The boxing glove can't be activated. It will trigger when you bump into a car. It's better to use it in a straight road and avoid it in a curve. Background informations ----------------------- I've written all the code in pure 68030 assembler and DSP asm. It took me 1 year to complete the game. - All the sprites are hard coded in assembler, using the sprite compressor I made for beats of rage. - 90% pure 68030 code - 10% DSP asm code. I've hacked the dspmod player to be able to add the road computing and 3D->2D projection code. - All developped with Hatari under Linux My aim was to : - fit the game in a standard 4 meg Falcon, - keep a 320*240 true color resolution for both VGA and RGB - have a game that run as fast as a standard falcon can do - make a new and never seen game on Falcon - keep the depth of the road, objects and other cars as far as possible. Have a closer look at how far you can see details on each level. I don't think there's already been such a depth in a racing game on old computers. The game contains 4 different tracks and 39 different cars. Each track has it's own textures, sprites and music. The game includes an internal clocktick to avoid slowness. The rendering is done with 3 screen bufers (without VBL synchro). The roads are precomputed with 4 tables : - a x table based on a spleen curve - a height table also based on a spleen curve - a texture table who indicates which texture to display on each tile - a sprites table for the objects around the track There's also a car table for the cars of the level. The mapping engine is based on the addx.l instruction. here is the heart of the textured road display engine : .loop_draw_road: move.l (a5,d6.w*2),(a6)+ addx.l d7,d6 move.l (a5,d6.w*2),(a6)+ addx.l d7,d6 move.l (a5,d6.w*2),(a6)+ addx.l d7,d6 move.l (a5,d6.w*2),(a6)+ addx.l d7,d6 dbf d2,.loop_draw_road I've found a nice optimisation by moving the pixels 2 by 2 with a move.l For this, you have to adapt the value of the addx (d7 value). This allow to win 2 VBL on the standard Falcon for the road rendering and it doesn't kill the quality of the rendering. The rendering allows 2 modes : flat and textured. The flat engine is 1 VBL less than the textured engine. I've included it for the nostalgics of this kind of road rendering. Graphical Ressources of the game -------------------------------- All the pictures of the game were found via google image. I've reworked them all under "the gimp" to fit my needs. Sometimes, I had to modify these pictures. When a picture is finished, I export it in TGA, no compression. Then, I convert it with "Rainbow multimedia" under Falcon by saving it in Falcon mode true color picture. Then, I rework the binary with my own programs (optimisations and assembler convertors). The bonuses pictures are taken from "Sonic and Sega all star racing". Musical Ressources of the game ------------------------------ The modules are issued from different demos and games. I've downloaded them from the web via different sources. night blues : 4 Channels, 42 Patterns, 31 Samples by Patryk Gegniewicz (Poland) banana split : 4 Channels, 49 Patterns, 31 Samples by dizzy / cncd '93 (finland) ## FEELING ## : 4 Channels, 59 Patterns, 31 Samples by XTD / MYSTIC melon : 4 Channels, 64 Patterns, 31 Samples by #Audiomonster/Melon JazzFunk : 4 Channels, 43 Patterns, 31 Samples by jazzfunk ??? child's philozophy : 4 Channels, 47 Patterns, 31 Samples by dan / picco (1994) The sounds ---------- The sounds are all downloaded from the web. They're all free sounds. During the game, you'll hear some stereophonic swoosh when the car is close to an object. I wanted this to reinforce the reality for the player. Credits ------- Falcon code and design: Laurent Sallafranque / Thadoss / Dune Init routs from Dead Hackers Society Falcon Demosystem v15 Joystick/keyboard routine by Nyh/Hans Wessels DspMod by Bitmaster / TCE (hacked by myself) video save/restore: Aura & Mugwumps Double VBL bug in VGA: Zerkman / Sector One Joypad routine: Simon Sunnyboy All the pictures and musics belong to their respective creators. If someone doesn't want his work to appear in my game, just mail me and I'll remove it. Thanks and greetings -------------------- Thanks a lot to the author of the pictures, sounds and music I use in the game. I want to thank all the Atari communauty for all the fabulous piece of software I saw during the last 20 years. This game is my little contribution to the atari Falcon world. Special thanks to goes to: - Chuck and MIC from Dune - Zerkman, Ukko, Tomy, _Orion, - Grey for the Sillyventures (hey Grey, I always have a good time in Gdansk) - All the people I met at SillyVenture (guys, you are so cool !!!) - all the members of the atari crews - All the members of the Hatari development team, especially Nicolas, Thomas and Eero Future enhancements ------------------- The engine is robust enough to use it as a basis for more games. Maybe ... ;) Version history --------------- 0.1 - Nov-12ccc : Initial release 0.2 - mars 2013 : first road engine 0.3 - july 2013 : sprites, other cars 0.4 - oct. 2013 : first opponents movements, finition of the game, hack of the dspmod player 1.0 - nov. 2013 : presentation of the game at Sillyventure 2013 If you find a bug ----------------- If you find a bug while playing, just send me a mail with the following informations: - the race name - the position of the car on the track (beginning of the track, middle, end) - at which lap does the bug appear ? - the time left, the gear position, the number of laps, ... - how many cars were there on the screen ? (1, more) - was there something special (a bonus, a crash, ...) The more precise you are, the best I can reproduce and fix the problem. If you can do a photo or a snapshot of the problem, it's better. Contact ------- laurent.sallafranque@free.fr Stay (H)atari forever ;-)