pouët.net

Racer 2 by Dune

                                  December 2014

                                    Thadoss
                                   Templeton
                                     Xerus
                                   Calimero

			        proudly presents

                              Racer 2 final release

                                Falcon030 version

                            1st at Silly venture 2k14



About
-----

After Beats of Rage and Racer, Racer 2 is my third game
for the Atari Falcon030 computer.
This is a 100% homebrew game.
The game is freeware, you can distribute it as much as you want.


Requirements
------------

To run this game you need:

- An Atari Falcon030 with at least 4MB of RAM
- At least 55Mb 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


The game runs on CT60/63 accelators, but was developped for standard falcon.
To run it on CT60/63, you must activate the caches.
It has been tested on a standard CT63 and seems unstable at overclocked
frequencies. If you encounter some problems with Racer 2 on CT63, let me
know.

If you have a 4MB machine, try to free up as much memory as possible and
start the game in 320x240.

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
-------------
RACER_2.PRG	: the full 68030 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


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. It will also erase your best scores.

Note: the zipfile doesn't contain the file RACER.DAT. It will be created
      the first time you launch the game.



Gameplay
--------

Racer is the most extrem racing competition reserved to the best drivers
on earth. Very few pilots managed to survive it.

Only the best drivers are allowed to run on the hardest tracks of the world.
This year, you've decided to participate to the race to challenge your skill.
Will you manage to finish at the first place ?



Difficulty level
----------------
You can play racer with 3 levels of difficulty:
   beginner   : the race is easier (more time, other opponents drive slowly)
   pilot      : harder than the begginer mode
   ace driver : the hardest mode. Reserved for the best pilots

You'll obtain the highest scores in ace driver mode.



Controls (keyboard keys)
------------------------
ACCCELERATE  : UP arrow
BRAKE        : 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 GAME    : ESC key


Controls (joystick)
-------------------
ACCCELERATE  : UP
BRAKE        : DOWN
LEFT         : LEFT
RIGHT        : RIGHT
FIRE BUTTON  : FIRE
BONUS ACTION : RIGHT shift or alternate
GEAR UP      : UP + left shift
GEAR DOWN    : DOWN + left shift
PAUSE        : P key
EXIT GAME    : ESC key


Controls (jagpag)
-----------------
ACCCELERATE  : FIRE A
BRAKE        : FIRE B
LEFT         : LEFT
RIGHT        : RIGHT
FIRE BUTTON  : FIRE A or FIRE B
BONUS ACTION : FIRE C
GEAR UP      : FIRE A + accelerate
GEAR DOWN    : FIRE B + brake
PAUSE        : PAUSE key
EXIT GAME    : ESC key


Bonuses list
------------
You can choose to play with or without the bonuses (in the option menu).

Maxi speed       : the player max speed increase to 400 km/h during 10 seconds
Hyper speed      : the player max speed increase to 500 km/h during 10 seconds
Eject one        : the closest opponent is ejected to the side of the road
Eject all        : all the visible opponents are ejected to 1 side of the road
Flat tire        : the closest opponent's tire is flat
Flat tires       : all the visible opponent's tires are flat
Time freezing 5  : freeze the time counter for 5 seconds
Time freezing 10 : freeze the time counter for 10 seconds
Bumping airbag   : bump into a car ejects it from your path
Hyper thrust     : maximum speed and automatic pilot driving
Bad driver       : invert the driver's left/right commands during 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 them.
You'll have to learn how to use them.

"Bad driver" is the only malus of the game.

The "Bumping airbag" can't be activated.
It will trigger automatically when you bump into a car.



Background informations
-----------------------

I've written all the code in pure 68030 assembler.
It took me more than 2 years to complete the game.

- All the sprites are hard coded in assembler, using the sprite
  compressor I wrote for beats of rage.
- 100% pure 68030 code
- All developped with Hatari under Linux


My aim was to :
- create a new and never seen before racing game for falcon
- allow the game to run on a standard 4 meg Falcon,
- keep a 320*240 true color resolution for both VGA and RGB
- have a game that runs as fast as a standard falcon can allow
- 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:
- 3 racing modes : Championship, Challenge and Arcade
- 24 different tracks (graphics, road, opponents, colors, musics, ...)
- 39 different cars
- 1 intro
- 3 different animated ending animation (1 for each game mode)

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 which 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 core 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 faster than the textured engine.
I've included it for the nostalgics of this kind of road rendering.



Graphical Ressources of the game
--------------------------------

Mega thanks goes to Templeton who did a huge and great work in
this new version of racer.
Also big thanks to Calimero.

Templeton's contribution :
 - the intro of the game
 - all the main menu
 - all the splash screens before the race starts
 - the new player's car
 - many background pictures rework
 - some back side sprites around the road rework or creation
 - the hud font and throttle in the game
 - the new bonuses design
 - the game's ending animations
 - game design, ideas
 - a lot of help for polishing the game
 - my motivation when I wanted to stop to code the game ;)

Calimero's contribution :
 - rework of all the opponent's cars
 - rework of the first version of the player's car
   (but I don't use it in the final release, sorry Calimero for that)
 - some back side sprites around the road rework or creation

The other pictures and road textures of the game are from myself and were
initially found via google image.
I've reworked them under "the gimp" to fit my needs.
Sometimes, I had to modify these pictures.



Musical Ressources of the game
------------------------------

Big thanks to Xerus here who helped me to choose the 24 modules
of the game. He also reworked all these modules to let them loop
correctly and he removed some crackles and noises in some of them.

The modules are issued from different demos and games.
I tried to create a specific atmospher for each level.

I've downloaded them from the web via different sources.

01_1			: messy theme!
			: 4 Channels, 21 Patterns, 31 Samples
			: by axel of brainstorm (18-03-92)

01_2			: Lemon Funk - cTrix
			: 4 Channels, 19 Patterns, 31 Samples
			: by cTrix (2006)

01_3			: tits that fits
			: 4 Channels, 64 Patterns, 31 Samples
			: by vomit 1993

02_1			: banana split
			: 4 Channels, 49 Patterns, 31 Samples
			: by dizzy / cncd '93 (finland)

02_2			: netherworld
			: 4 Channels, 64 Patterns, 31 Samples
			: by probe/Razor1911

02_3			: electricity
			: 4 Channels, 35 Patterns, 31 Samples
			: by strobo 11-10-1992

03_1			: Stolen-10-Choice
			: 4 Channels, 11 Patterns, 31 Samples
			: by ???

03_2			: child's philozophy
			: 4 Channels, 47 Patterns, 31 Samples
			: by dan / picco (1994)

03_3			: ghost-of-gothic
			: 4 Channels, 34 Patterns, 31 Samples
			: by credo/anathema

04_1			: melon
			: 4 Channels, 64 Patterns, 31 Samples
			: by #Audiomonster/Melon

04_2			: africa
			: 4 Channels, 20 Patterns, 31 Samples
			: by evelred/darkness

04_3			: african beats
			: 4 Channels, 25 Patterns, 31 Samples
			: by junky john & olaf

05_1			: Moongazer
			: 4 Channels, 59 Patterns, 31 Samples
			: by ???

05_2			: balcer
			: 4 Channels, 40 Patterns, 31 Samples
			: by xtd 21.12.1992

05_3			: mr monkey
			: 4 Channels, 24 Patterns, 31 Samples
			: by slide

06_1			: happy samba
			: 4 Channels, 50 Patterns, 31 Samples
			: by mr man/Absence

06_2			: Salsa con carne
			: 4 Channels, 24 Patterns, 31 Samples
			  by Mystical / Purple for the four channel
			  compo at TP6

06_3			: La_vie_est_rose
			: 4 Channels, 32 Patterns, 31 Samples
			  by ???

07_1			: sundown
			: 4 Channels, 13 Patterns, 31 Samples
			: by bishop march 92

07_2			: global confusion
			: 4 Channels, 41 Patterns, 31 Samples
			: by pink of abyss

07_3			: racer ;)
			: 4 Channels, 37 Patterns, 31 Samples
			: by -tmt designs-

08_1			: artcore
			: 4 Channels, 38 Patterns, 31 Samples
			: by >>> smt <<< 1994

08_2			: My dick in her mouth
			: 4 Channels, 35 Patterns, 31 Samples
			: by alc'o hole / smash

08_3			: ## technological ##
			: 4 Channels, 62 Patterns, 31 Samples
			: by xtd/union 20.01.1993, mad elks product

BLUES			: night blues
			: 4 Channels, 40 Patterns, 31 Samples
			: by Patryk Gegniewicz (Poland)

END_0			: powerfunk(stm29)
			: 4 Channels, 20 Patterns, 31 Samples
			: by stmixes 1993

END_1			: acid pop
			: 4 Channels, 40 Patterns, 31 Samples
			: by pink/abyss

END_2			: potoroo
			: 4 Channels, 16 Patterns, 31 Samples
			: by strobo = stlrale 9/10/1993

JAZZFUNK		: JazzFunk
			: 4 Channels, 43 Patterns, 31 Samples
			: by jazzfunk ???



The sounds
----------

Xerus contribution :	all the intro sequence sounds
			many help in the sounds polishing

The other 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.



The game testing and design
---------------------------

Again, Xerus and Templeton helped me a lot by testing the game and giving
me ideas to add. Without their help, the game would certainly not have reach
this level of quality.



Code 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
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.



Thanks and greetings
--------------------

My big thanks goes to Templeton, Xerus and Calimero who helped me a lot.
Without their help, the game wouldn't be the same.

I want to thank all the Atari communauty for all the fabulous piece of
software I saw during the last 20 years and all the new releases to come ;)

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, Mehilainen, Arthur, Ultrasyd, Syntax Error,
  (the french Silly adventurers ;) )
- 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 who still believe in Atari
- All the members of the Hatari development team, especially Nicolas,
  Thomas and Eero


Future enhancements
-------------------

Nothing in mind for now ;)
(Don't believe me, I've got plenties of ideas ;)


Version history
---------------

0.1 - Nov  2012 : 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,
1.0 - nov. 2013 : Racer 1 final version (1st at Silly venture 2k13)
1.1 - dec. 2013 : Racer 2 development starting
2.0 - dec. 2014 : Racer 2 final version (1st at Silly venture 2k14)


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, the speed, ...
- 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

Have fun, stay (H)Atari