AaronCameron.net
Grotesque: fun to say, fun to be.
Not a Member? - Login or Create an Account...MC Offline
Saturday the 16th of December 2017 @ 07:27pm
Front Page Projects Your Profile About
[]

Filed Under: Journal - Development



or in grade 9, 320x200 splendor,


TimeLINE: SHAREWARE EDITION

by: (a very, very young) Aaron Cameron


Cast (in order of appearance):

Main Character - Tomas Dayton


Introduction Sequence


-- SCENE --
The Opening White Midnight screen fades in from black and whatever happens.

-- SCENE --
Background Polymorphs to the timeline title screen.

-- SCENE --
Background Polymorphs to the scene described below with the timeline logo still preserved.

-- SCENE --
Dusk with the sun setting right in the center of the screen blocked by a city contrasting the city against the ground. A 3D perspective shows the highway coming from the city to the left of the display at the bottom. The ground is a desert with several small plants growing. The city is about 10 km away.

A car slowly becomes larger on the horizen as the screen. while the car is approching credits are Morphing in and out on the side of the screen. Half of the way through the credits and about 1/2 of the way down the cars path and about 10 seconds into the screen the timeline insignia Morphs off the screen. The car finaly screams past the camera as the camera turns to the left to watch it slowly. for several tenths of a second you see the car very close up with unexact detail as it drives by. Then the screen which has been since the car reached the camera, scrolling around until it is 180 degrees from its old position. Showing the car drive towards the labs (described below).

-- SCENE --
Very wide shot of the outside of "GEO-PLEMA ENTERPRISES". Large futuristic towers in the background. A huge slanted outwards fencing around the entire complex. The complex is about 10 km away.

The car continues to drive away as the credits go by until it looks to reach the outside of the fencing.

-- SCENE --
Side view of the fence with the center of the screen as the inside of the profile of the fence. The car slows down and fence gate opens.

-- SCENE --
Show the road from the side on the ground about 10 meters away.

Car drives by slowly and more credits show.

-- SCENE --
An open field with a road coming to an end in the middle of the screen, still a profile.

Show the car come towards the end of the road very slowly. As the car reaches the end of the road the ground comes up to expose a hole in the ground that the drives down into. Afther the car dissapears down the hole, the ground comes back down. Credits are still showing.
-- SCENE --
Show an underground parking lot with several pillars from the roof on the far end of the building from the enterence ramp which leads from above. The whole lot is shown from this angle.

The car drives down the ramp and parks in a spot. Headlights go off. Then Tomas gets out of the car and walks to a doorway right under the camera.

-- SCENE --
Close up of keypad with standard 10 digit keypad with an ok and cancel button in the bottom corners and a digital display above.

He enters a 4-5-6-2-3-4-4-OK

-- SCENE --
Jump back to the parking lot scene two scenes back.

The door opens and he walks into the building.

-- SCENE --
There is a main desk with a guard sitting at it. Behind the desk are large glass double doors.

** Guard **
Working late again Tom?

** Tomas **
Arn't I always?

Tomas starts to walk towards the door.

** Guard **
Well have fun. (laughs)

He opens the door.

** Tomas **
Don't I always?

-- SCENE --
The side view of a hall in the labrotory, with a b&w checkerboard floor and soft off white walls. There are dark silver/grey doors on the far wall, and two on the near wall inbetween the doors on the far wall.

Tomas walks down the hall to the second door on the far wall. He opens the door and walks in.

-- SCENE --
This is a side view of an office with a computer terminal and a desk on the far right of the screen. There is a door on the far left. The room is very homey and warm. There are several pictures on the desk and and several on the wall of family.

Show Tomas walk over to the first picture stop look at it. Then takes the picture down and walks over to the desk with it under arm. When he gets to his desk he drops the picture into the garbage. He turns the chair around to face the computer turns it on and starts typing.

Chapter I
Wrong place, wrong time

-- MEANWHILE --

-- SCENE --
The hallway of the lab as described above.

The high security door at end of hall blows open. Fire spreads across the hall. Smoke fills the hall. Lights slide out of the roof and start spinning. A fire klaxxen sounds.

-- SCENE --
Office scene, look above.

Tom leaps out of his chair, runs to office door and open's it. He then runs into the hallway.

-- SCENE --
Hall scene described above, with fire and smoke.

Tomas runs down hall through the fire into the high security area.

-- SCENE --
This is a hallway, with silver walls decked with devices like radiation suits, and
re-breathers. There is a section of fire extinguishers near the right door. The
floor in this room has rubble some of it smoldering. It also has three or four
small fires. There are the same lights and klaxxen in this room.

Tomas grabs a fire extinguisher off of wall then runs into the next room.

-- SCENE --
Large room, on fire. There is a very large device on the far side of the screen
there is a very large portal way with a keyboard on the screen side of the
player. There is a great deal of computers in the background and a there is a
pile of rubble on the far side of the character away from the screen slightly left
of the center of the screen. There is a very large fire to the left on the screen
right by the door.

Tomas uses the fire extingusher to put out the fire.

** SCIENTIST **
(weak voice) Help!

Tomas pulls the scientist out of the rubble

** TOMAS **
Are you all right?

** SCIENTIST **
My legs are broken, I think I've got internal injuries.

** TOMAS **
One second, wait right here, I'll get someone.

** SCIENTIST **
There's no time for that, the rebels found out about our plan to stop there time
experiments. The rebels have bombed the barrcks. All of the time soldiers are
dead.

** TOMAS **
Time soldiers, I.. I don't understand.

** SCIENTIST **
That's not important, take this holo-cube. It contains all the information you
need. Take a phase resinator, and use the phase inducer. (points to portal)

** TOMAS **
What?! I'm just an apps programmer.

** SCIENTIST **
You don't understand, we've got to stop the paradox.

** TOMAS **
What do you mean paradox.

** SCIENTIST **
There is no time for this... Go now!

** TOMAS **
Alright. What do I do.

** SCIENTIST **
You see that panel (cough).

** TOMAS **
Yes.

** SCIENTIST **
Use this key to start the warmup sequence.
Then type RUN (cough) EXP-41-13 (cough).

** TOMAS **
Then what?

Explosion in backround, beams fall on the scientist blocking Tomas into the
room. Tomas walks over to panel.

-- SCENE --
This is a close up scene of a computer terminal. The whole keyboard and a
small portion of the monitor are visiable. In the background are blured flames
and the light from the fire is reflecting on the terminal screen.
(ART NOTE: The whole area is lit by a fire. Unperdicable shadows and soft red
light should to be used)
(PROGRAMMING NOTE: This whole scene should be done with colour
cycling and other cheap tricks. To do the background as well as animate the
keyboard and a hand would be pushing the speed of the computer too far and it
would be chopy.)

Tomas enters before mentioned key sequence.

** SCENE **
Same scene of the room as used before. Portal is lit up and is fluctuating in
colour from yellow to white and back. (PROGRAMMING NOTE: This should
be done with colour cycling)

Screen shakes and more rubble falls to the ground covering the only exit other
than the portal.

(NOTE: The program should sense when the character starts they're run
towards the portal and make the room collapse behind them)

Tomas runs to the far side of the screen near the collapsed exit (DEMO)

** TOMAS **
Well, it dosen't look like I'll be getting out that way.

Room Shakes agan.

** TOMAS **
I'd better do something soon!

Tomas runs across the room with the ceiling collapsing behind him towards the
portal and jumps in.


Chapter II
Jail Bird

-- SCENE --
Show pure bright blue sky with beautiful clouds and a flock of very strange
birds. The screen then scrolls down to show some of the horizon. A portal
flashes and appears in the sky about half way down on the screen.

After a second, second and a half or so Tomas flies out if the portal in the same
stants he was in when he dissapeared.

** TOMAS **
Wholy SHIIIII...

Tomas falls off of the screen.

-- SCENE --
A Huge sand dune from the side at least 150 meters high.

Tomas falls into the screen from above and lands in the side
(-Player- see's a large hovercraft approching and blacks out)

(scene jail cell)

(-Player- wakes up and stands up)
-Player-: The holocube! It's gone!
-Player-: Oh great, there goes any chance of finding out where I am.
(-Player- tries to open cell door and finds out it's locked)
-Player-: It's locked!
-Player-: Oh well, all I know is it dosen't look like I'll be going anyware soon.

(END OF SHAREWARE VERSION)
(-name1- walks to discolored tile in floor)

-name1-: Hey, this tile looks different than the rest.

(-name1- removes discolored tile)
-name1-: Check it out, there's a box and a note in here.
(-name1- reads note...

Sargent Wilson,

I think I've found a way out of this dump. In the box is a gun and a
circut crossover junction. All you have to do is connect the crossover to the
lock panel on your side of the door and connect the other end to the electric
shielding on the camera. That should short the door out. Then you should be
able to break the door down. Just remeber our deal. If you get out you get us
all out. Good luck. Don't screw up.

Marcos
...)

-name1-: Oh well, anythings better than just sitting here. I've got to go find that
holocube anyway.

(-name1- connects the first end of the crossover to the panel and tries to connect
the other end to the camera but can't reach)

-name1-: I'm too short. I'll have to find another way to reach the camera.

(-name1- pushes bed under the camera)

-name1-: Now I should be able to reach.

(-name1- connects the first end of the crossover to the panel and the second end
to the camera)
(the camera shorts and falls to the ground)
(the panel also shorts)

(the lights above the door go out)

-name1-: I'd better do something fast, no doubt someone heard that.

(-name1- runs at and breaks down the door)
(-name1- walks through the door)

(scene hallway of jail)

-name1-: That wasen't so bad.

(laser blast flies past -name1-'s head almost hitting)

( Fire fight here )

(-name1- walks down the hall and looks through the window)

-name1-: Oh boy! Things are going to get real interesting if I don't think of
something in a hurry. They'll be here any second.

(-name1-: Pushes random keys on the control panel next to the door)
(Siren comes on and a blast door lowers over the first door which was just
opening)

-name1-: Oops. Well, I'm not going out that way. At least it should hold them
for a...

(blast door blows open and laser shots fly past -name1-'s head.)

-name1-: Then again...

(-name1- sprints down the hall with lasers shooting past him all the way)
(-name1- reaches the end of the hallway and pushes more random buttons on a
panel by a cell door)
(the cell door opens along with all the others in the hall)
(the lasers stop)
(-name1- runs back down hall to investigate and see's four prisoners beating the
crap out of the guards with the guns)

-pris1-: Thank god someone got us out of there.

-pris2-: You saved our lives.

-name1-: Where am I? Where is here? Who are you?

-pris1-: There's no time for that. Follow us.

-name1-: Follow you where?

-pris2-: The air ducts! Hurry!

-name1-: But I...

-pris2-: Shut up and run!

(three me run about 3 1/2 screens down the hall and then are intercepted by two
guards)

(-fire fight here-)

*- neither of the prisoners can die but the fight ends if you die -*

(keep running one more screen and then -pris1- opens an air duct and -pris1-
and -pris2- climb in)
(two more guards run onto the screen)
(-name1- jumps into duct)

*- if -name1- tries to fight the guards he dies UNCONDITIONALY -*


Chapter III - Down the drain

(scene air circulation room)
-* player starts in a large duct on the top of the screen and ends up on the floor.
When the player leaves the duct the cut out of the duct closes to cover the guard
getting blended *-

(-name1- slides to a stop in a large section of the tubing)

-pris1-: Damn! This wasen't suppose to be an active vent.

-name1-: What's the problem? I don't understand.

-pris2-: See that really big fan. Well if that fan turns on, we're, well, it won't be
good.

-name1-: So what do we do?

-pris1-: That's what I was about to ask you.

(-name1- notices a weak connection in the side of the tubing)

(-name1- pulls on loose connection and makes a hole about the size of a man's
fist)
(-name1- slides the fire extinguisher into the hole)
(-name1- shoots the fire extinguisher)
(the extinguisher explodes leaving a hole just big enough to slide through)
(-pris1- and -pris2- slide through the hole)
(-name1- starts to slide through and the fan starts spinning. At the same time
one of the guards slides down the tube.)
(-name1- slides through the hole and falls to the ground)

-guard1-: (gurgle) Aaarrraaarr!!!!!!!

(blood starts dripping from the hole the men slid through)

-name1-: Ok, I want some answers.

-pris1-: I think we have a second.

-pris2-: They'll be here in a few moments, keep it breif.

-name1-: Where are we?

-pris1-: We were hoping you could tell us.

-name1-: Who are you?

-pris2-: Same as you, either a GEO-PLEMA time soldier or a rebel time
terrorist.

-name1-: You mean you're all involved in this paradox thing.

-pris1-: All of us. But we stopped fighting each other as soon as we were
captured, ever since then, we've been trying to get home.

-name1-: How do we do that? Getting home I mean.

-pris2-: Well as far as I know, just turn off resenator bracelet.

-name1-: So, why are you still here?

-pris1-: Easier said than done, the aliens have our bracelets.

-pris2-: All of our bracelets, except for yours.

-name1-: What do you mean, I don't have my bracelet.

-pris1-: Well the guards didn't have it when they left your cell.

-name1-: What about my holocube?

-pris1-: I don't think so. I only saw them for a second, but I was specificly
looking for the bracelet.

-name1-: They must both still be at the mountian side.

-pris2-: Where?

-name1-: The mountians where I appeared, I must have dropped them there.

-pris1-: That's all I needed to hear.

(-pris1- raises his gun and aims it at -name1-)
(-pris2- takes -name1-'s gun)

-name1-: What are you doing?

-pris2-: They needed to know where your bracelet was. They knew you'd never
have told them.

-pris1-: So they told us to get the information from you.

-name1-: But why?

-pris1-: Freedom.

-pris2-: They promised us they'd let us return to our time line after we helped
them.

-name1-: And you beleived them?

-pris1-: What choice did we have.

-pris1-: -pris2-, go get the guards.

(-pris2- leaves the room)
(a control panel beeps as the fan in the upper tube starts turning)
(-pris1- turns to face the panel behind him)
(-name1- pounces on him knocking him to the ground and throwing the gun
from his hand)
(-name1- runs to the gun and jumps on it, then rolls onto his back and fires
from the laying position.)
(-pris1- is just jumping onto -name1- as he fires and the blast from the gun
throws him in the other direction about a meter.)
(-name1- gets to his feet)

-name1-: Bet that hurt.

-name1-: I'd better do something soon, or I'm guard bait.

(-name1- checks -pris1-'s body and finds...
i) A gun.
)

-name1-: Well, at least I'm armed again.

(-name1- walks out into the hall)


Chapter IV - Mirror, Mirror

(scene basement)

(hatch against far wall opens)
(-name1- walks out and into the hallway)
(hatch closes behind him)

(-name1- runs west out of the screen)

(scene west hallway)

(four guards run into the screen and run towords -name1-)
-* PLAYER WILL DIE UNCONDITIONALY IF HE TRIES TO FIGHT *-
(-name1- runs back to the east)
(-name1- hides behind a bulkhead)
(guards run into room and file into the hatch)
(-name1- runs back to the west)

(scene west hallway)

(-name1- runs west)

(scene lift area)

(-name1- enters lift)

(scene lift area lobby)

(-name1- exits lift and is noticed by clerk)

-clerk1-: Just calm down, they won't hurt you.

(-clerk1- pushes button under counter)
(alarms go off)
(blast door closes blocking exit)
(-name1- runs back to the east)

(scene lobby east)

(one guard runs onto the screen from the east)
(fire fight here)
(as soon as guard dies two more appear from where he came in every 5
seconds)
-* PLAYER WILL DIE HERE UNCONDITIONALY IF HE FIGHTS *-
(-name1- run's back to the west)

(scene lobby)

-* if player one stops to kill the clerk the guards will hit him from behind *-

(-name1- runs past clerk and out of the door)

(scene glass tunnel leading to the next bio-dome)

(-name1- runs west for two screens until he trips and rolls to the ground)
(the guards catch up with him as he stands up)
(the lead guard pushes -name1- over)
(-name1- rolls to his knees and fires at the guards killing the lead guard)
(the guards jump on -name1- wrestling him to the ground)
(a large piller of light appears behind the guards at the east end of the screen)
(the future -name1- run's from the piller of light and fires on the guards killing
them both)
(-name1- gets to his feet)

-name1-: What the heck?

-name1- ff: I.. I can't stay.

-name1-: Wait a minute, your, your me.

-name1- ff: I really can't stay. Take this and forget you ever saw me.

(-name1- ff drops a dialect translator)

-name1-: WAIT!

(-name1- from the future jumps back through the piller and it dissappears)

-name1-: Well that was cool.

(-name1- runs over to the translator and picks it up)

-name1-: I wonder what this is?

-name1-: Look theres a small label...


GEO-PLEMA
DIALECT TRANSLATOR

01-203-4050-20030-300402-323-A-34-5

SWITCH SETTINGS 1-ON, 2-OFF, 3-AUTO DESTRUCT
(AUTO DESTRUCT DELAY = 2 sec)

MILITARY ISSUE

NOT FOR PERSONAL OR CIVILIAN USE


(-name1- turns translator on)
-* PLAYER CANNOT LEAVE SCREEN OR CONTINUE WITH PLOT
UNTIL TRANSLATOR IS ON *-

-name1-: This looks as though it was ment to fit in the ear.

(-name1- puts translator in his ear)

-guard1-: (from far east) STOP!

-name1-: Here we go again.

-* PLAYER CAN NOW LEAVE THE SCREEN *-

(-name1- runs to the west)
(screen doesn't change and player loses control)
(guards run onto the screen and one of them stops at the bodys)

-guard1-(wearing special cloths): Tevan-Kar! I will personally rip the heart out
of the one who did this!

(scene last glass tunnel at the entrence to the next bio-dome)

(guards run onto screen just as -name1- runs off to the west)


Chapter V - Really, REALLY big gun

(scene east store room lights off)

(-name1- pushes a button on the console to the side of the door on the far wall)
(emergency door falls and klaxen's sound)
(-name1- pushes another button on the far wall and the lights in the room come
on)

(scene east store room lights on)

-name1-: Holy moly! There must be more weapons in here than GEO-PLEMA
has in it's entire army.

(a deep rumble comes from the door)
(-name1- spins to look at door)

(scene other side of door)

(show guards cutter beam cutting through door)
(show 6 guards watching)

(scene east store room)

-name1-: Sounds like there trying to cut through the door.

-name1-: I'd better think of something fast.

(-name1- walks west)

(scene store room)

(-name1- walks west again)

(scene west store room)

-name1-: I wonder what's under that tarp?

(-name1- pulls tarp back to reveal a huge turret gun)

-name1-: Geeze, that guns barrel is as big as my head.

(-name1- walks over to control panel)
(-name1- pushes a few buttons)

-name1-: Looks like it needs power.

(-name1- walks back to the east)

(scene store room)

-name1-: Another tarp, I wonder if this has something to do with that gun?

(-name1- pulls the tarp back to reveal a generator)

-name1-: Cool!

(-name1- turns the generator on and it lights up and comes to life)
(-name1- starts to push generator to the west)

-name1-: This could take a while.

(scene black background with the writing "TIME PASSES...")

(scene west store room)

-name1-: There, all hooked up.

(-name1- walks over to panel of the gun)
(the gun hums up to full power)

(scene close up of panel)

-* INTERFACE SWITCHES TO THE MOUSE *-
-* MOUSEPOINTER SWITCHED INTO HAND *-

(-name1- pushes power)
(gun hums to life and servo's grind)
(barrel of gun raises to the door)

(scene outside of store room)

(show 6 guards)

-guard1-: Did you hear something?

-guard2-: Naw, it's your imagination.

(scene closeup of panel)

(-name1- pushes charge up button)

(computer flashes the word "CHARGING" on the panel)

(scene east store room)

(red hot door blows open)
(guards run in)

(scene closeup panel)
-* seconds pass *-
(computer flashes "CHARGED")
(-name1- pushes fire button)

(scene west store room)

(guards run onto screen just as the gun fires)
(guards in the front get carried back with the blast)

(scene store room)

(blast clears room of guards)

(scene east store room)

(blast shoots through the screen)

(scene tube enterce to store room)

(blast impacts killing the rest of the guards)
(screen flashes from red to white)

(scene far away shot of the bio-dome & pathway)

(dome edge by the path and path junction explode)

-name1-: (insert favorite explanative here)

-name1-: That'll teach them to screw around with me.

(-name1- goes east two screens)

(scene east store room)

(show major fire blocking entrance to the tube pathway)

-name1-: Lets have a quick re-cap shall we.

-name1-: I'm in another time line.

-name1-: Everyones trying to kill me.

-name1-: I'm trapped in a huge store room of ammunition and explosives.

-name1-: And there's a fire creeping towards it.

-name1-: Not a problem.

-name1-( to the camera ): I'm going to die.

(a grinding sound of metal on metal comes from the far west)

(player walks to the west)

(scene middle store room)

(metal grinding again from the middle of the room)

-name1-: It looks like someone is opening a hatch in the floor!

-name1-: I'm saved!

(hatch pops off)

(laser blast shoots past -name1-'s ear)

-name1-: I'm toast!

(-name1- draws his gun and enters a fire fight with the first guard)

-* INSERT FIREFIGHT HERE *-

(-name1-'s gun dies after the first guy is dead)

-name1-: Can this day get any better, now my gun is dead!

-guard1-: Put up your hands!

-guard1-: NOW!

(-name1-: puts his hands up)
(three more guards file out of the hatch)

(scene close up of a grenade box)

(fire creeps to the edge of the box and catches it)

(scene back at middle store room)

(white flash)
(an explosion errupts behind the guards and blows them and you into the next
screen)

(scene west store room)

(the smoldering bodys of two of the guards are on the ground in front of you,
the third is under you)
(-name1- gets to his feet)

-name1-: Thanks for breaking my fall.

(a smaller explosion comes from the east)
(-name1- walks to the east)

(scene middle store room)

(show fire all over the east end of the screen)
(-name1- drops down the hatch)

Chapter V - Down the Drain (again)

(scene dimly lit tunnel)

(-name1- drops into the screen)

-name2-: Freeze!

(-name1- puts his hands up)

-name2-: Who are you!

(-name1- spins and knocks the gun out of -name2-'s hands)
(-name1- punches -name2-

And for those six people still reading, here's proof that I actually started working on this silly thing. There is more code, of course, but this is enough to show that I was a dumb, dumb young man.

Notice that audio startup was "SOUNDBLASTER", and that memory was considered to be conventional or XMS. Also note the reprogramming of the PIT. Yes. We had to do that.

The animations were also all in lossless FLC or FLI, which amazingly enough mplayer will play.

0001 /*******************************************************************************
0002 
0003 	*********************************   **    **   *******   *****
0004      	**                             **    **   **   **   **
0005           **    **   ********   ******   **    **   **   **   ****
0006           **    **   ** ** **   **       **    **   **   **   **
0007           **    **   ** ** **   ****     **    **   **   **   *****
0008           **    **   ** ** **   **       **
0009           **    **   **    **   ******   ********************************
0010 
0011 ********************************************************************************
0012 
0013 					    Release Version 0.1a
0014                              	ShareWare Edition
0015 
0016 ********************************************************************************
0017 
0018 Produced, Written, Programmed by Aaron Cameron
0019 Graphical Designer: Deryck Love
0020 Sound Effects: Jeff McAuley
0021 Music: That remains to be seen
0022 
0023 ********************************************************************************
0024           _   _
0025 	       /
0026 Using Graph X  Version 11.0
0027           _/ _
0028 
0029 *******************************************************************************/
0030 
0031 /** Precompiled and Borland Includes ******************************************/
0032 #include <graphx.h>
0033 
0034 // Sections of the Game
0035 #include "mainmenu.h"
0036 
0037 /** Prototypes ****************************************************************/
0038 /** Sectional  ***********/
0039 /** Local      ***********/
0040 void STARTUP();
0041 void SHUTDOWN();
0042 void SHUTDOWN( char *errorstring );		// This routine logs the error
0043 void interrupt frameregulationtask(...);
0044 
0045 /** Defines *******************************************************************/
0046 #define MIN_CONVENTIONAL 472000//393216
0047 #define MIN_TOTALXMS 7168
0048 #define MIN_LARGESTXMS 2048
0049 
0050 // Speeds & Frequencies
0051 #define INTRODUCTIONFRAMERATE 20
0052 #define MASTERPITFREQUENCY	20
0053 #define FRAMESPERSECOND		20
0054 
0055 // Directory's and filenames
0056 #define SOUNDDIRECTORY 	"sounds"
0057 #define ARTWORKDIRECTORY	"artwork"
0058 #define FONTDIRECTORY	"fonts"
0059 #define CONFIGFILENAME	"setup.ini"
0060 
0061 // Sizes, lengths, and Numbers
0062 #define NUMBEROFQUOTES	4
0063 
0064 /** Classes *******************************************************************/
0065 
0066 /** Variables *****************************************************************/
0067 char quote[ NUMBEROFQUOTES ][ 128 ] = {
0068 	"If most people were as funny as they thought they, the worldn"
0069      "would be a much happier place.",
0070      "It's only paranoia if your wrong.",
0071      "Give a man a fish, he eats for a day.  Kill him, he never needs to eatn"
0072      "again.",
0073      "Strength from hate, power from the void."
0074  };
0075 
0076 char PLAYSTATE=1, OLDPLAYSTATE=0;
0077 
0078 /** Section Includes **********************************************************/
0079 
0080 /** Main Routines *************************************************************/
0081 void main() {
0082 	// Startup
0083      STARTUP();
0084 
0085 
0086      // Shutdown
0087      SHUTDOWN();
0088  };
0089 
0090 /** Local Function Definition *************************************************/
0091 void STARTUP() {
0092 	char playchannel;
0093      unsigned a,i,d;	// Address, irq, dma
0094 	X_Cwave startup;
0095      // Config File
0096      FILE *config;
0097      X_Cfli wmlogo,title,introduction;
0098 
0099      // Comment the error log file
0100      X_logerror("The error.log file is a record created each time TimeLine isn"
0101      		 "launched.  It keeps track of the progress of the program son"
0102                 "the hard working troubleshooters at White Midnight (namelyn"
0103                 "me) can help you out better.  You can just ignore it unlessn"
0104                 "something gives you an error message.");
0105      X_logerror("** NEET-O INTRODUCTION ENDS HERE, ONLY TECHNICAL STUFF FROM "
0106                 "NOW ON **");
0107 
0108 
0109 	// Text Startup
0110      printf("Initializing Holographic Matrix...n");
0111      delay(500);
0112      randomize();
0113 
0114      // Loading the configuration file
0115      printf("Opening Matrix Config File, '"CONFIGFILENAME"' ... ");
0116      if ( (config=f open(CONFIGFILENAME,"r")) == NULL ) {
0117      	printf("Not Found, run SETUP");
0118           delay(1000);
0119           SHUTDOWN("Couldn't find '"CONFIGFILENAME"', run SETUP");
0120       };
0121      // Read the Info
0122      fscanf(config,"%x %x %x",&a,&i,&d);
0123      fclose(config);
0124 
0125      // Check for enough memory
0126      printf("DonenChecking for Conventional Memory Requirements ... ");
0127      if (farcoreleft()<MIN_CONVENTIONAL) {
0128      	printf("Insufficient Freen");
0129           delay(1000);
0130           SHUTDOWN("Insufficient free conventional memory, "
0131           	    "Requires 525kb (537 600 b) free");
0132       };
0133      printf("SufficientnChecking for XMS Memory Requirements ... ");
0134      if (!XMS.init(MIN_TOTALXMS,MIN_LARGESTXMS)) {
0135      	printf("Insufficient FreenRequires 7 Mb (7 340 032 b) free");
0136           delay(1000);
0137           SHUTDOWN("Insufficient free XMS memory");
0138       };
0139 	printf("SufficientnChecking for Sound Blaster Compadible ... ");
0140      // Load the sound effect for the pretty sound startup
0141      startup.loadraw( SOUNDDIRECTORY "startup.raw", 11025);
0142      if ( (!DSP.init( a, i, d )) || (!DSP.multi.init()) ) {
0143      	printf("Couldn't locate a Sound Blaster Compadiblen");
0144           delay(1000);
0145           SHUTDOWN("Couldn't locate a Sound Blaster Compadible");
0146       };
0147 	playchannel = DSP.multi.playwave_returnchannel(&startup);
0148 
0149      printf("AccessednStarting PIT Sequencer ... ");
0150      if (!PIT.init( MASTERPITFREQUENCY )) {
0151      	printf("Couldn't init the PIT chipn");
0152           delay(1000);
0153           SHUTDOWN("Couldn't init the PIT chipn");
0154       };
0155      PIT.taskable[0].actioninterrupt = frameregulationtask;
0156      PIT.taskable[0].init( INTRODUCTIONFRAMERATE );
0157 
0158 	printf("DonenHolographic Matrix Activation Completen");
0159      while (DSP.multi.channel[playchannel].inuse);
0160 
0161 	// Unload the test sound
0162      startup.unload();
0163 
0164      // Set up the graphics mode
0165      GRAPH.init( X_320x200x256 );
0166      GRAPH.setvisualpage(0);
0167      GRAPH.setactivepage(0);
0168      GRAPH.clearpage();
0169 
0170      // Introduction Time
0171      // Load everything up
0172      wmlogo.loadfile( ARTWORKDIRECTORY "wmlogo.fli" );
0173      introduction.loadfile( ARTWORKDIRECTORY "intro.fli" );
0174      title.loadfile( ARTWORKDIRECTORY "timeline.fli" );
0175 
0176      // Play the White Midnight Logo
0177      KEYBOARD.clearbuffer();
0178 	while ( (!KEYBOARD.keyboardhit())&&
0179      	   (wmlogo.footer->frame < wmlogo.footer->frames) ) {
0180      	// Playback the animation
0181           if (PLAYSTATE!=OLDPLAYSTATE) {
0182           	wmlogo.play();
0183           	// Assure a delay until the next frame
0184           	OLDPLAYSTATE = PLAYSTATE;
0185            };
0186       };
0187      KEYBOARD.clearbuffer();
0188 	while ( (!KEYBOARD.keyboardhit())&&
0189      	   (introduction.footer->frame < introduction.footer->frames) ) {
0190      	// Playback the animation
0191           if (PLAYSTATE!=OLDPLAYSTATE) {
0192           	introduction.play();
0193           	// Assure a delay until the next frame
0194           	OLDPLAYSTATE = PLAYSTATE;
0195            };
0196       };
0197      KEYBOARD.clearbuffer();
0198 	while ( (!KEYBOARD.keyboardhit())&&
0199      	   (title.footer->frame < title.footer->frames) ) {
0200      	// Playback the animation
0201           if (PLAYSTATE!=OLDPLAYSTATE) {
0202           	title.play();
0203           	// Assure a delay until the next frame
0204           	OLDPLAYSTATE = PLAYSTATE;
0205            };
0206       };
0207 
0208      // Free up memory from the introduction
0209 	wmlogo.unload();
0210      introduction.unload();
0211      title.unload();
0212 
0213  };
0214 
0215 /******************************************************************************/
0216 void SHUTDOWN() {
0217 	GRAPH.init( X_80x25x16 );
0218      printf("%sn",quote[random(NUMBEROFQUOTES)]);
0219      exit(0);
0220  };
0221 
0222 /******************************************************************************/
0223 void SHUTDOWN( char *errorstring ) {
0224 	GRAPH.init( X_80x25x16 );
0225      X_logerror( errorstring );
0226 	printf("Something just isn't Jive'n right, check logserror.logn");
0227      printf("Exact Error as reported was:n%s",errorstring);
0228      exit(1);
0229  };
0230 
0231 /******************************************************************************/
0232 // This should be set up to cycle at a rate of 15 frames / second
0233 void interrupt frameregulationtask(...) {
0234 	if (PLAYSTATE==0) PLAYSTATE = 1;
0235      else PLAYSTATE = 0;
0236  }; 

Share:

Reader Comments

Times goes by so fast, is it just me?

2006.03.02 11:03am
pphaneuf
Oh, you reprogrammed the PIT! LOL! Didn't *strictly* have to do that, but it made for much better games. Was that why my clock went fast, by any chance? Hehe!

Luxury!

2006.03.03 01:31am
Anonymous
You had libraries to reprogram the PIT? Luxury! Why in my day, we had to reprogram the PIT with nothing but outb() calls to the BIOS.

Now mind you, "my day" was 5 years ago when I was taking an operating systems class. But, you know.

Peter.

©2017 Aaron Cameron