1532 lines
78 KiB
Plaintext
1532 lines
78 KiB
Plaintext
______/\___________________________ __ ________________ ___ /\_______
|
||
\____ \ ________ _ _ ______ \ / \| \ ________ | \/ ______/
|
||
/ | \ _) \ \_/ \ | \ / \ \ _) \ | \______ \
|
||
/ | \ \ | \ | \/ \ \ /~\ \ / \
|
||
\_____ /_______/___| /________/\____\_____/_______/_________/________/
|
||
===\_____/============|____/========================================[+tZ^]==
|
||
|
||
DemoNews Issue #82
|
||
February 5, 1995 - February 11, 1995
|
||
|
||
------------
|
||
|
||
DemoNews is a weekly publication for the demo scene. It is produced at the
|
||
Internet FTP site ftp.eng.ufl.edu (HORNET). This newsletter focuses on
|
||
many aspects of demos and demo making. Everyone is welcomed to contribute
|
||
articles, rumors, and advertisements.
|
||
|
||
Information about HORNET and DemoNews can be found under /demos/README
|
||
|
||
-Christopher G. Mann (Snowman)-
|
||
r3cgm@dax.cc.uakron.edu
|
||
|
||
Start.of.DemoNews.082,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
|
||
|
||
SIZE: 80,185 SUBSCRIBERS: Last week: 1241 This week: 1252 Change: +11
|
||
|
||
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||
|
||
SECTIONS ARTICLES
|
||
---------------- -----------------------------------
|
||
HORNET News Setag and Notron (A New Format)
|
||
New Uploads Files recieved at HORNET
|
||
NAID NAID Frequently Asked Questions
|
||
Editorial Right Brain Left Out
|
||
Music Interview with Maelcum/KFMF
|
||
Code Optimizing Vector Transforms. on P5
|
||
Denthor's High The Perfect Body
|
||
School Essays
|
||
Back Issues How to Get 'em, Descriptions
|
||
Advertisements Mind Side Out
|
||
Help Me!
|
||
Closing Comments DemoNews Top 10 LIst
|
||
|
||
,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
|
||
|
||
<<HORNET News>>
|
||
|
||
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||
|
||
_____A New Format
|
||
|
||
Notron : Good evening, this is Notron...
|
||
Setag : ...and I'm Setag...
|
||
N+S : And THIS, is the HORNET News.
|
||
Setag : Our top story tonight is The Party 1994! Fresh from dopey Denmark,
|
||
this party promises to rock the demo scene off its butt. Its
|
||
scheduled to begin in late December, so get your tickets now!
|
||
Notron : Setag, that party is over a month old.
|
||
Setag : Crap! Well, I don't have direct 'net access, so how am I supposed
|
||
to keep up with stuff like 'dat?
|
||
Notron : By reading DemoNews each and every week of course. For information
|
||
on how to subscribe, be sure to read the README file under /demos.
|
||
Setag : What a shameless plug. Why don't you just give them a 1-800 number
|
||
and a free trial issue if they subscribe in the next 24 hours?!
|
||
Notron : Why don't YOU just go back to Composer 669 and crank out a couple
|
||
more 185bpm tunes?
|
||
Setag : And what would that accomplish? In our already decadant and
|
||
immobilized society, two more rapid-paced tracks won't make much of
|
||
an impact. Governmental hypochondria and continued debasement of
|
||
the moral foundations laid down by previous generations only
|
||
propagte the further disintegration of humanity as a whole.
|
||
Notron : I guess you're right Setag, I never thought about it that way
|
||
before.
|
||
Setag : Plus, FastTracker 2 rulez!
|
||
Notron : Did you hear about Triton's new demo "Axis" due to be released this
|
||
March?
|
||
Setag : No.
|
||
Notron : Well, neither did I, so I guess we'll have to move on to something
|
||
else. With us tonight is GraveDigger, our roving rumor collector.
|
||
GraveD : Hello everyone!
|
||
Notron : What juicy information do you have for us this week Gravie?
|
||
GraveD : Don't call me Gravie. Its GraveDigger.
|
||
Notron : Sorry, my mistake.
|
||
GraveD : Well folks, we have four tidbits fresh from the grapevine (i.e.
|
||
IRC). The first is that Quarex has been averaging 4 glasses of
|
||
milk per day since age 4.
|
||
Setag : You're kidding!? 4 glasses! But what does that have to do with
|
||
the demo scene?
|
||
GraveD : Well, nothing really, but I thought it was interesting. Anyway,
|
||
our second rumor is that Necros won't be attending the NAID demo
|
||
party this April.
|
||
Notron : No way! NAID is supposed to be the biggest thing to hit North
|
||
America since the atomic bomb in World War ][. Why isn't he
|
||
coming?
|
||
GraveD : What do I look like, his mom? I just get the rumors, I don't
|
||
research them. Our third rumor is that Musicman has left epinicon.
|
||
Setag : Who's Musicman?
|
||
GraveD : Never mind. The last rumor I have for you is that Zer0 wastes too
|
||
much time with MUD's.
|
||
Setag : MUDs are the tool of the devil.
|
||
Notron : Yes Setag, I agree. Back in high school I did some research on
|
||
these so-called "Multi-User Dungeons" and found out that they are
|
||
just a front for drug dealers and gun runners.
|
||
Setag : ...and they erode the fundaments of civilization.
|
||
Notron : But heck, they sure are FUN, so what's the harm?
|
||
Setag : GraveD, how reliable are all of these rumors?
|
||
GraveD : Hey, I just tell 'em. I don't check for accuracy.
|
||
Setag : But what if you're wrong. Won't Snowman get flamed?
|
||
GraveD : Oh, who gives a crap about Snowman.
|
||
*Snowman* Ahem!
|
||
GraveD : Er... Hello there Snowman. How's it going?
|
||
*Snowman* All aspects of my body and mind are functioning within tolerable
|
||
limits, so I conjecture that one could say "I am fine".
|
||
Setag : Hey Snowy, lighten up a bit, this is supposed to be a funny
|
||
article.
|
||
*Snowman* Something has gone drastically awry. The three of you were
|
||
supposed to report interesting and informative information to
|
||
the demo community. Instead I find rumors and nonsensical
|
||
comments. Where is Ryan Cramer anyway?
|
||
RCramer: Right here man. School has been eating up most of my time lately
|
||
so I won't be able to contribute as much to DemoNews for awhile.
|
||
*Snowman* This is unfortunate. How do you suggest we compensate for lack of
|
||
material in your absense?
|
||
RCramer: Well, what about Denthor? He always seems to contribute something
|
||
interesting.
|
||
Denthor: Hello Hello Hello! Can anyone see me? I'm here! Hello?
|
||
*Snowman* Greetings Mr. Smith. Are you aware that I had to completely
|
||
reformat this week's issue of DemoNews to accomodate your essay?
|
||
Denthor: Gosh, I'm sorry. Won't happen again. Nope, won't happen again. :)
|
||
So did you like it? Huh? Huh? Did ya?
|
||
*Snowman* Actually I have not had time to read it yet. I've been busy
|
||
editing articles in the "Code" section (where your articles are
|
||
SUPPOSED to go). Do you notice that Tom and Jason (Dee-Cug) are
|
||
writing articles that actually deal with coding-related topics?
|
||
Denthor: Well, if you don't like my stuff, then mabey you should find
|
||
someone else!
|
||
Dee-Cug: Hey you two, cut it out! I think that bloody tutorial converting
|
||
is making you two blokes a bit testy. Its not bloody Denthor's
|
||
fault if he can't bloody contribute something code-related each
|
||
bloody week. Snowman, Denthor is bloody the 'thing', and you
|
||
should be happy to bloody know him at all.
|
||
*Snowman* All right. Denthor, I apologize.
|
||
Denthor: Hey, no problem. :)
|
||
Setag : Snowman, why do you get those '*' thingies around your name and all
|
||
we get is a freaking colon?
|
||
GraveD : That's what I want to know!
|
||
*Snowman* Excuse me? Who is writing this article? I did not have to include
|
||
you two at all. I just thought that this format for presenting the
|
||
weekly HORNET news would be more interesting than previous weeks'
|
||
format.
|
||
Notron : But this format takes up a lot more room...
|
||
GraveD : ...and most of the readers don't really care anyway...
|
||
Denthor: ...and I want those '*' thingies on my name too!
|
||
*Snowman* Well, we will try this format for an issue or two. If the readers
|
||
do not like it, we will discontinue it. If however, the readers
|
||
give positive feedback, we will make this news a regular feature
|
||
of DemoNews. Agreed?
|
||
ALL : Agreed.
|
||
*Snowman* In that case, we had better wrap this thing up. Notron and Setag?
|
||
Notron : This is Notron...
|
||
Setag : ...and I'm Setag...
|
||
N+S : And THIS has been the HORNET News.
|
||
Dee-Cug: BTW Snowman, check the bloody spelling next time. There must have
|
||
been 10 bloody errors.
|
||
*Snowman* Whoops! Will do Jason.
|
||
|
||
,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
|
||
|
||
<<New Uploads>>
|
||
|
||
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||
NOTE: All locations start with /demos and then their respective sub-
|
||
directory. Please note however that the actual base directories
|
||
(like /pub/msdos/demos) may differ from mirror to mirror.
|
||
|
||
Location Filename.Ext Size Description
|
||
---------------- ------------ ---- ----------------------------------------
|
||
|
||
/demos
|
||
|
||
/alpha/NEW amb_lego.zip 143 Amable presents LEGO (386,GUS)
|
||
classika.zip 601 Classika by Renegade (386,GUS)
|
||
hobtro .zip 9 18th Birthday intro for Hobbes
|
||
nooon_no.zip 1339 NO, the official release demo from TP94
|
||
sci .zip 177 Smash the Control Images by Jourgensen
|
||
stargate.arj 11 Stargate BBstro done by n-Factor
|
||
/parties g-proba2.zip 58 General Probe Invitation Intro
|
||
naidinv2.zip 206 NAID invitation intro by Night Vision
|
||
/diskmags dask04 .zip 181 DaskMig Issue IV (TP94 report)
|
||
|
||
/music
|
||
|
||
/disks reflctns.zip 851 Reflections, the Christmas Musicdisk
|
||
sr-feb95.zip 572 February Collection/Surrounders(MTM,MOD)
|
||
/programs/frontend dmpc260.zip 105 DMP Companion 2.60 Front End
|
||
/programs/players iplay121.zip 139 Inertia Player v1.21 (ASM94 CD version)
|
||
sonix07b.zip 34 SONIX v0.7b GUS/SB MOD Player
|
||
/songs/midi sewnui .zip 8 Silly Girl by Priscilla Chan
|
||
/songs/mod mntl-sez.zip 41 Mental Seizures by Spam
|
||
/songs/s3m batchman.arj 604 Upped by Batchman (in 3 parts)
|
||
b13-0001.zip 124 Electronic LSD by Lankmar
|
||
defi-agc.zip 226 Against the Clock by Blackwolf/Defiance
|
||
defi-top.zip 136 Top of the Mountain by Blackwolf/Def.
|
||
k-higher.zip 297 Take Me Higher by Basehead of KFMF
|
||
kradkrad.arj 148 In the Study by Hector
|
||
lemming!.zip 95 Little Lemming by The Avatar
|
||
lil'funk.zip 346 Little Funk Machine by Vinyl/Mindprobe
|
||
new_age .zip 65 New Age by Mr. Fix It (Michael Gaare)
|
||
nightmre.zip 134 Nightmare by Corsaire/HS
|
||
sky_blus.zip 344 Blues Train by Skyjump Team
|
||
sky_jngb.zip 922 Jungle Baby Love by Skyjump Team
|
||
smeg_mnd.zip 679 Mindstream by Smeghead/TF
|
||
tearsvic.zip 217 Tears of Victory by Populus/HS
|
||
thestudy.arj 96 In The Study by Digital Music Kings
|
||
tuntemat.zip 144 Tune from 'Unknown' demo by Vinly/MP
|
||
/songs/special perfect .zip 336 PTM Module by Vic/Acme - Perfect Reason
|
||
right .zip 290 PTM Module by Vic/Acme from TP94
|
||
/songs/xm 6daysrmx.zip 174 Six Days (Ravehard-Rmx) by Nomad/SXS
|
||
c_pak00 .zip 109 ClaimPak 00 - 3 .XM modules
|
||
|
||
/graphics
|
||
|
||
/pictures wntd_ray.lha 202 Wanted brings you 2 cool ray-traced
|
||
|
||
,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
|
||
|
||
<<NAID>>
|
||
|
||
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||
|
||
_____NAID Frequently Asked Questions v1.0
|
||
|
||
written by Veritech Knight (William Le) (25th of January,1995)
|
||
|
||
To start this off, a little description of the town of Montreal, and
|
||
Longueuil (where the party is at). It isn't exactly a FAQ, but I've had
|
||
some mail that made me believe that some people don't know where Canada is,
|
||
let alone the city of Montreal. Canada is not a state, it's that huge mass
|
||
of land that's north of the USA. Montreal is an island city in the province
|
||
(roughly the equivalent of a state) of Quebec, surrounded by the
|
||
St-lawrence river, and a few urban towns (including Longueuil), with a
|
||
total population of around 3 million +.
|
||
|
||
The State just south of the province of Quebec is Vermont. The average
|
||
temperature in the winter in montreal is -15C (5F) although this winter has
|
||
been pretty warm to date (-10C average). In the spring (eg.easter), it's
|
||
hot enough outside to start biking, say about 10degrees C to 15C (50F -
|
||
60F). (The girls start wearing mini-shorts as soon as the snow has all
|
||
melted, right before easter, what a coincidence!..). The first language is
|
||
french, although most people speak english too nowadays (look at me). Of
|
||
course, I can go on and on but..
|
||
|
||
On with the real questions..
|
||
|
||
Q - How can I get road maps to get to the party be car?
|
||
A - When you buy your tickets, we send you a map along with the tickets if
|
||
you request it.(see next question).
|
||
|
||
Q - How do I buy tickets? reserve my space on the site &/or sleeping room?
|
||
A - This is the address you should write to for tickets.
|
||
|
||
NAID / APRAXIA
|
||
College Edouard-Montpetit
|
||
945, chemin de Chambly
|
||
Longueuil (Qubec)
|
||
J4H 3M6
|
||
|
||
Include in your enveloppe:
|
||
- a check for 5$ (per person) if you are staying one day only.
|
||
- a check for 7$ (per person) if you are staying both days.
|
||
- add one dollar if you want maps (shipping&handling)
|
||
- a letter with the names of the people comming, the number of tickets,
|
||
if you would like to reserve sleeping quarters, a table on the site,etc.
|
||
|
||
Check payable to: NAID/APRAXIA - College Edouard-Montpetit
|
||
Money is in canadian funds (equals about 5-6$ US). All donations
|
||
accepted. Keep in mind that this is a non-profit organization, and all
|
||
donations will be put to good use to make the party better for everyone.
|
||
|
||
Q - What can you tell me about the sleeping quarters?
|
||
A - People will be staying in classrooms. A group can request to have their
|
||
own room (specify in letter for tickets). A room can accomodate 20
|
||
people comfortably. Each classroom can be locked using a key which is
|
||
available following a 20$ deposit. The key is given to the "leader" of
|
||
a group. One key per classroom. Electricity is available in every room,
|
||
and bathrooms aren't far away.
|
||
|
||
Q - Can my group and I have a table on the site?
|
||
A - -ALL- groups will have a place on the site. Don't forget to request it
|
||
in the letter sent for tickets. If possible, mention the number of
|
||
computers you are bringing along, or that you need (though there is no
|
||
guarantee you will get a computer if you don't bring your own).
|
||
Reserving space in advance helps alot, so don't hesitate to send for
|
||
tickets today.
|
||
|
||
Q - Will there be any trouble finding a parking space near the party-place?
|
||
A - The party being in a school (and a big one at that), lots of parking
|
||
space is available (about 2000cars).Oh, and it's free too :) .
|
||
|
||
Q - Can we arrive on friday and leave on monday?
|
||
A - We are aware that some people/groups have to arrive early, either to
|
||
get their computers installed or because their plane/train/bus can only
|
||
come on friday/leave on monday. There won't be a problem if you arrive
|
||
earlier.. actually, you might just be lucky enough to help us put
|
||
things up... and clean up aferterwards :)
|
||
|
||
Q - Will there be food available on the site?
|
||
A - Subway (the famous submarine makers) will have a stand in the school
|
||
and will be selling their subs cheap to feed hungry democoders.. There
|
||
will also be lots of coffee, Tim Horton's donuts and other little
|
||
goodies on sale onsite. Right outside the school, there is a Pizza Hut,
|
||
a Suisse Chalet, a hotdog joint, a Harvey's and a Tim Horton's. Other
|
||
known restaurants are also available not too far away (a few minutes of
|
||
city bus), along with arcades, bars, etc.
|
||
|
||
Q - Which groups are going to be at the party and will compete?
|
||
A - I am not a PR for all the groups out there, so please stop asking this
|
||
question. Lots of groups have shown interest in the various compos, but
|
||
it's too early to know for sure who is comming or not, who will be
|
||
competing in what, so my final words on this subject are: BE THERE AND
|
||
FIND OUT FOR YOURSELF. Thank you :)
|
||
|
||
Q - I am not going to NAID, but I want to enter a compo anyways, how can I?
|
||
A - Basic rule number one, to collect a prize you gotta be there. Being
|
||
nice guys =), we've decided to be a bit flexible: regarding the demo
|
||
and intro compo: you can enter it, it will be shown on the big screen,
|
||
but no prize will be awarded (eg. no voting will be done on it).
|
||
Regarding the music and graphics compo: if a person who is absent, but
|
||
his/her GROUP is present on the site, a song/pic can be submitted with
|
||
the GROUP's name on behalf of mr./missus X . Limit one song/pic per
|
||
GROUP, and one song per person. Which means (Yes, I'll draw a picture
|
||
for you) :
|
||
|
||
Let's take for example the group ELiTE, with these members:
|
||
T00 Cool, Radboy, and Gino.
|
||
T00 cool can enter a song and/or a pic in the respective compos
|
||
Radboy can do the same
|
||
Gino too.
|
||
Afterwards, t00 cool, radboy and gino all enter either compo as "ELITE"
|
||
and run away with the first prize in all compos..
|
||
|
||
Q - Frankly, why does the NAID invitation intro suck ?
|
||
A - We are also disapointed about the intro. First off, it was supposed to
|
||
be finished months ago, and yes, the coding isn't incredible.
|
||
|
||
When NAID started in August, we were all demo *lovers*, and not some
|
||
kind of world-famous demo group organzing a demo party (oh, which
|
||
reminds me of the question:
|
||
|
||
Q - Why doesn't the "NAID / The Apraxia factor" team have a group name?
|
||
A - It's because we havn't DONE anything yet. ;> ).
|
||
...
|
||
The people whose names are mentioned in the info-file were "picked up"
|
||
along the way from our computer science courses. We were lucky to have
|
||
at least one person with a little bit of demo coding knowledge. Yes, we
|
||
could have had the intro done by a group with more experience, and yes,
|
||
some groups offered there help at the time (thanx to NV and Abstract
|
||
for wanting to help), but we had our little "team" who wanted to help
|
||
too. I personally didn't know any of these people, but the other main
|
||
organizer Khan had discovered that Boggart was really a good coder (and
|
||
mind you, he isn't so bad). So we gave him a chance to do something for
|
||
us. Every bit of code in the intro is his, the best part being the
|
||
flame effect in the NAID font. Unfortunately though, that little effect
|
||
seems to eat up all of the cpu's speed, thus making the rest slooooow.
|
||
The 10k S3M player is also his, but a little unfixed bug in it didn't
|
||
like the tune I had made for the intro, so at the last minute we had to
|
||
take one of our buddy's existing "ready-in-5minutes" tunes, which
|
||
explains the somewhat "crappy" music (Although you gotta admit that
|
||
phone ringing is pretty funny :) ).
|
||
|
||
At any rate, what is done is done, and from now 'till easter, another
|
||
intro will probably be released... this time not done by us <g>. And
|
||
please remember that although the intro doesn't help NAID's image,
|
||
there is basically ONE thing that'll make this demoparty good or not:
|
||
the ORGANIZING. So 99.999999% (as an intel pentium would put it..) of
|
||
our efforts is put into it. (1/ to make sure we'll have lots of fun and
|
||
2/ to avoid hidden "NAID SUCKS" messages in future demos :> ).
|
||
|
||
..stay faithful kids! Send for your tickets today!
|
||
Remember: Be there and die or be nowhere and cry.
|
||
|
||
Veritech Knight (William Le) - naid@ebsco.com
|
||
|
||
BTW, I get ALOT of mail, and answer ALL of it, so please be patient in
|
||
waiting for a reply (don't send new mail every day because you think your
|
||
mail didn't get thru!).
|
||
|
||
,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,,
|
||
|
||
<<Music>>
|
||
|
||
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||
|
||
_____Interview with Maelcum
|
||
_ _ _
|
||
/ \ / \ ___ _____ | | ____ __ _ _
|
||
/ \/ \/ _ \/ ___ \| |/ __// / __/ \_/ \ Interview with Maelcum
|
||
---/ /\__/\ \/ \ \ \_/ /| | / \ \ \ \/\_/\ \------------------------
|
||
\ \ / /\_/ \ /_| |\ \___\ \__/ /\ / / of the Kosmic
|
||
\__\ /__/\___/\_\_____\| \____\\____/\_\ /_/ Free Music Foundation
|
||
|
||
GD = GraveDigger of uuDW/CoRE ............. digger@freeside.scsd.k12.ny.us
|
||
MA = Maelcum of Kosmic .................... dan@bowker.com
|
||
--------------------------------------------------------------------------
|
||
|
||
Maelcum is the head man of the Kosmic Free Music Foundation, a group of
|
||
18 composers, 2 artists (who are also musicians), 2 coders (one is also
|
||
a musician), and 2 PR members, totaling 24 people. Maelcum himself has
|
||
written somewhere in the range of 1500-2000 tracks in his lifetime, and he
|
||
currently prefers Renaissance's MultiTracker for composing.
|
||
|
||
With such a large number of tunes under his belt, Maelcum probably boasts the
|
||
largest personal PC music library. "This will sound like I'm an ego-maniac,"
|
||
he told me, "but I haven't talked to anyone else who's written more than half
|
||
the amount of stuff I've written that I can remember. The only person I can
|
||
remember being anywhere close is Sidewinder. I think he's been tracking a lot
|
||
longer than me though :)"
|
||
|
||
In 1994, Maelcum released 52 tracks under Kosmic (an average of one a week).
|
||
This makes up a little more than 1/3 of Kosmic's 125 total releases in 1994.
|
||
|
||
When I first approached Maelcum about being interviewed for DemoNews, I
|
||
asked if he wanted to set up a time to meet on IRC to conduct the interview.
|
||
He then suggested that I mail him a list of questions instead. This sounded
|
||
like the better option, due to the fact that I was unlikely to find time to
|
||
do this anyways, with my finals approaching. I mailed him three sets of
|
||
questions, and in each case, got the responses less than a day later.
|
||
|
||
Due to the fact that it was already Saturday by the time I got the first
|
||
completed list of questions, and DemoNews comes out on Sundays... plus, the
|
||
interview had not yet been completely formatted and Maelcum doesn't like to
|
||
use capital letters, this interview is actually a week late. I tried to get
|
||
it done in time, but despite Snowman's plea to have it done to avoid another
|
||
small issue of DemoNews, well... here it is, however late it may be.
|
||
--------------------------------------------------------------------------
|
||
|
||
GD: How old are you, where do you go to school, and what is your major?
|
||
|
||
MA: I'm 20 years old. I dropped out of Union County College (cheapo state
|
||
school) in 1993. I was studying Communications.
|
||
|
||
GD: Where are you living? Are you currently employed?
|
||
|
||
MA: I live with my mother in a small house. I do freelance music and graphics
|
||
work for different companies. Mostly music for video games and graphics
|
||
for different corporate computer companies. I also do consulting, mostly
|
||
to at-home PC users in my area.
|
||
|
||
GD: Give us a run-down of a typical "Day in the life of Maelcum.."
|
||
|
||
MA: Wake up anywhere from 6am-6pm (depending on when I last fell asleep),
|
||
watch some tv or go onto the net, eat food, listen to news radio or
|
||
those lame top 40 stations, read email, write some music (never when
|
||
i've just woken up though). Not necessarily in that order! I go through
|
||
phases...
|
||
|
||
GD: What's been keeping you busy recently?
|
||
|
||
MA: Right now I'm just sitting around a lot trying to get different things
|
||
organized and keep up with different things that interest me, like the
|
||
Russians slaughtering the Chechen people and the various things going on
|
||
in Congress. if I had some iniative perhaps I might have gone into
|
||
politics.
|
||
|
||
GD: Tell us about your songwriting... Do you follow a specific pattern when
|
||
composing?
|
||
|
||
MA: Not really. I mean, subconsciously I'm sure I do, but I don't
|
||
intentionally try to follow any 'rules'. That's one of the things that
|
||
I hate about a lot of music - the really stupid rules. My only rule is
|
||
it has to sound good, or at least interesting. Actually a lot of the
|
||
"melodies", "riffs" or whatever they're all called, I just make up
|
||
randomly. Like I'll just hit some keys on the keyboard to randomly enter
|
||
notes, then go back and mess around with them till I get something
|
||
interesting.
|
||
|
||
GD: Approximately when did you start composing?
|
||
|
||
MA: From what I can tell, sometime in late 1991. I think the oldest song
|
||
that I have here (excluding the 1000+ on QIC-80s, some of those might be
|
||
older) is from October 4th, 1991. I couldn't have been composing for more
|
||
than a few weeks at that time.
|
||
|
||
GD: What made you decide to begin tracking?
|
||
|
||
MA: I really can't answer that, because I'm not sure. I basically just
|
||
started fooling around with Modedit when v1.0 came out. I'd been doing
|
||
stuff with waveform editors, multitracks and other stuff for about two
|
||
years before that, but i didn't really own any equipment so i couldn't
|
||
do much.
|
||
|
||
GD: What's the best part about composing?
|
||
|
||
MA: I dunno, maybe the money and the girls.
|
||
|
||
GD: How do you know when you've written a good tune?
|
||
|
||
MA: When i like what i've written. :)
|
||
|
||
GD: Do you have any background in music theory?
|
||
|
||
MA: I really don't know much real music stuff, even though my mom was a music
|
||
teacher. I probably know a lot of stuff that I just don't know what terms
|
||
to use for it - that's the downside to not having any clue about the
|
||
theory, I probably am re-inventing the wheel half the time. But I guess
|
||
that's some of the fun.
|
||
|
||
GD: What kind of sound equipment do you own?
|
||
|
||
MA: I use a Gravis UltraSound with 16-bit daughtercard and 1mb of ram
|
||
currently. It's hooked up to a Sony 70 watt/channel ProLogic (surround
|
||
sound) receiver which drives two 10 inch speakers left and right, a 6
|
||
inch center channel speaker, and two 7 inch rear channel speakers. All
|
||
my speakers are really old ones, I think the newest ones are probably
|
||
almost as old as I am. I have a few really cheap microphones, a bottom-of
|
||
the line Japanese DJ mixer, and a few really lousy MIDI modules from the
|
||
early to mid 80s. Probably my most expensive single piece of equipment is
|
||
the receiver, which cost $250 :)
|
||
|
||
GD: Of the 1500-2000 tracks you have composed, do you still have all of them?
|
||
|
||
MA: I *think* I have most of them. I say think because many of them
|
||
(primarily 4 channel and FastTracker 1 .MODs) are on QIC-80 tapes which
|
||
I have not been able to access for over a year since my tape backup drive
|
||
died. It would be really cool if someone would donate one, and it would
|
||
let me release a lot of material that's never been heard before :)
|
||
|
||
GD: What software do you use for sampling/tracking, and why? Are there any
|
||
programs that you hate?
|
||
|
||
MA: Usually I use Goldwave 2.10 (Windows program) to sample stuff in 16-bit,
|
||
edit everything in 16-bit and then resample it down to 8-bit samples and
|
||
load into MMEDIT v1.01b. I just use what works for me. A lot of people
|
||
say MMEDIT sucks compared to Screamtracker but I just can't stand the
|
||
interface of ScreamTracker. I couldn't exactly explain why but it really
|
||
slows me down. I've been thinking about starting to use Fasttracker 2
|
||
though, since I was using Fasttracker 1 before I used mmedit.
|
||
|
||
GD: From what source do you get the majority of your samples? How many of
|
||
the samples that you use are originals?
|
||
|
||
MA: I sample 90% or so of my stuff from different CDs. I have the x-static
|
||
goldmine sampling cds, but so many people use those same sounds that I
|
||
don't like to use them a lot unless I totally change them, like
|
||
re-sequence the drum loops, add reverb and flanging, that kind of thing.
|
||
A lot of people think they're great because you don't have to spend hours
|
||
trying to come up with the perfect sound, but I think that a good tracker
|
||
musician has to be able to make their own sounds.
|
||
|
||
GD: So, you frown on ripping samples?
|
||
|
||
MA: Ripping samples is fine, I do it quite a bit myself, but if everyone just
|
||
rips, the music will get really dull. Come to think of it, maybe that's
|
||
why so much of it sucks right now.
|
||
|
||
GD: What's the strangest thing you ever did to create a sound which you
|
||
sampled and used in a song?
|
||
|
||
MA: I don't know, I try to do a lot of things randomly. I guess maybe the
|
||
samples I made for "Bang A Can" where I smacked the microphone against a
|
||
PC tower case and then edited them to bits in goldwave was pretty
|
||
strange.
|
||
|
||
GD: There's something I'd never do! Of course, I'd probably end up wrecking
|
||
something in the process.
|
||
What is your favorite tracked music?
|
||
|
||
MA: I don't really listen to a lot of tracked music that I don't write. I
|
||
think a lot of people listen to too much of it - that's the only reason
|
||
I can possibly see for why amiga-style demo muzak which was popular six
|
||
years ago is still the most written kind of music by pc composers! It's
|
||
really sad I think, a real de-evolution. There are some good composers
|
||
out there though.
|
||
|
||
GD: Who, then, do you think of as a good composer?
|
||
|
||
MA: Everyone says Necros to these kinds of questions, and it's certainly
|
||
true. Nec is a great musician. December.s3m was one of the best tracked
|
||
songs i've ever heard. Krystall is also really good, he does just great
|
||
trance songs, those are always really good. There's a lot of people out
|
||
there who do a few great songs, but tons of crap. I'd like to see people
|
||
try to be more consistent in their creativity. Floss is a really creative
|
||
musician - here is a perfect example. The guy is really doing what needs
|
||
to be done - taking some inspiration perhaps from the tired old demo
|
||
muzak and really inventing something that no one else has thought about.
|
||
His stuff is always great.
|
||
|
||
GD: What's your opinion on the rest of the KFMF composers?
|
||
|
||
MA: The whole Kosmic group is full of really great musicians - yes, maybe
|
||
I'm biased, but I haven't seen another group which has so many diverse
|
||
and stylish musicians. I think it really is like a "Dream Team" of
|
||
tracker music.
|
||
|
||
GD: Yes, you are really lucky to have such a wide range of styles.
|
||
What kinds of professionally-recorded music do you prefer?
|
||
|
||
MA: As far as real music goes, it would take far too long to list it all. I'm
|
||
into lots of techno, ambient, trance, world music - I love lots of middle
|
||
eastern music, it's just so much more interesting than most western music.
|
||
Some groups, I guess would be like Orbital, Front 242, Depeche Mode,
|
||
Erasure, Brian Eno, Aphex Twin, Stone Temple Pilots, De La Soul, A Tribe
|
||
Called Quest, Tim Simenon (Bomb The Bass), The Orb, Bill Nelson, Public
|
||
Image Limited, Negativland, Enya, Moby, Bjork, Renegade Soundwave,
|
||
Primus, Ravi Shankar, Material... I just listen to lots of different
|
||
music. As much as there is crap music out there, there's some great
|
||
stuff too - you just gotta look for it.
|
||
A lot of people might find this funny, but the groups that I grew up on
|
||
were stuff like The Police, Men At Work, Dire Straits, the Pretenders..
|
||
Johnny Cash and U2 are huge influences.
|
||
|
||
GD: What are some favorite songs of your own?
|
||
|
||
MA: Well, right now I like a song I wrote called "Calling Heaven" quite a
|
||
lot. It's going to be on the Intelligent Dance Music list's compilation
|
||
CD "Threads". It's really simple, but the simplicity works. Of my past
|
||
KLF releases, some favorites are "That Noise," my remix of Material's
|
||
"Mantra,".. there's just too many. I used to hate everything I had
|
||
written more than 2 weeks ago, but looking back on it all i'm really
|
||
happy with most of it.
|
||
|
||
GD: Over the years you have been composing, your music has undergone changes
|
||
in style. Can you explain what causes that?
|
||
|
||
MA: I'm not really sure! I guess the easy answer is that it is because my
|
||
tastes have changed. Like in 1993 - I was totally into rave and
|
||
traditional techno. The prodigy, stuff like that. then I got into a lot
|
||
of IDM type stuff - orbital, black dog productions.. later in 1994 I
|
||
really started to get heavily into ambient music like Irresistable Force
|
||
and other weird stuff. Now i'm kind of coming out of that phase - a lot
|
||
of the stuff on the second FTZ album which i'm writing with IQ of Kosmic
|
||
is back to the hard techno stage. My latest thing though is not really
|
||
any kind of classified music that I know of. It might be 'trip hop' but
|
||
I really haven't heard anything that I knew IS trip-hop, so i'm not sure
|
||
what that is. A lot of slower, heavy groove things with different styles
|
||
of percussion use. It's music to bob your head to. So far 'loend' is
|
||
probably the only thing i've released that demonstrates this new
|
||
direction.
|
||
|
||
GD: Do you have any goals, such as tracking for a full-blown demo?
|
||
|
||
MA: I'm working on something like that right now - but that's not really a
|
||
major goal for me. I mean, this sounds cocky or something, but i've
|
||
already worked with people who are like the Steven Spielbergs of the
|
||
video game world on things that put my music in front of an audience of
|
||
40,000 people or more, so I really can't see demos as such a big thing.
|
||
It's the same thing as with music. Perfect test is to put the end result
|
||
on tape. Would you watch most PC demos on videotape? I wouldn't! MTV's
|
||
crap is more interesting! I guess changing the face of PC demos is one
|
||
goal i'd like to pursue. I'm much more interested as a long term goal in
|
||
things like doing music for a motion picture, and getting a lyrics-free
|
||
video on U.S. MTV.
|
||
|
||
GD: I have to agree, I wouldn't bother watching a PC demo on TV. It would
|
||
just take all the magic out of it. MTV, though, is a different kind of
|
||
media, and like you say, relies heavily on lyrics.
|
||
How and when did KLF come to be?
|
||
|
||
MA: I started it in either late 1991 or the very beginning of 1992 I think,
|
||
although I might be wrong by a year.. 1992 was basically the year it
|
||
began though. It started as a VGA and Ansi group, but we sucked pretty
|
||
hard at Ansi, so when I got into tracking it gradually became more and
|
||
more of a music group. by 1993 it was nearly all music. the group died
|
||
in spring 1993 but we resurrected it as a music-only group in September
|
||
of 1993. Now it's on it's way back away from music-only :)
|
||
|
||
GD: About a month ago, a decision was made to change the group's name from
|
||
Kosmic Loader Foundation [KLF] to Kosmic Free Music Foundation [KFMF].
|
||
Is this something you had been thinking about for a while? What made you
|
||
decide to change the name?
|
||
|
||
MA: Yeah, we had been considering a name change for at least half a year. We
|
||
needed to get away from being confused with both The KLF and Keen Like
|
||
Frogs, and we had started to use "Free Music Foundation" some, so it was
|
||
a pretty logical decision. This lets us put our names on CDs with a lot
|
||
less problem too :)
|
||
|
||
GD: So you're thinking in terms of an identity crisis and commercially...
|
||
which makes sense... why let others get any credit for your work? :)
|
||
On December 23, "Santro" was released with a track composed by you for
|
||
accompaniment. How much time went into "Santro?"
|
||
|
||
MA: I don't know exactly how much time went into Santro, because my only
|
||
involvement was writing the music. I wrote the music in two or three
|
||
hours I guess, all in one sitting. I think the whole coding was only
|
||
about the same, and Sophisto's cheezy santa anim can't have taken too
|
||
long :) It was put together really quickly.
|
||
|
||
GD: You usually write MTM's. Why was the DSM music format used for "Santro"?
|
||
|
||
MA: Ask GooRoo why DSM was used - I gave him an MTM in the first place :)
|
||
It's probably because we used DSIK for sound.
|
||
|
||
GD: What do you see in the future of Kosmic?
|
||
|
||
MA: Hopefully a lot more exposure. We'd like to get the word out to more
|
||
non-hacker people. That's probably going to mean doing less "free"
|
||
music, but we'll always be doing some. I'm really interested in working
|
||
out a kind of 'shareware' music - giving people a way to support
|
||
musicians directly if they like what they're doing. I think most of my
|
||
songs are worth at least $0.25 :)
|
||
|
||
GD: A quarter? Hmm. You might have some trouble with your shareware music,
|
||
then. :) How do you expect people to react to this "shareware music"
|
||
concept?
|
||
|
||
MA: While people might say "Oh no! That would suck!" They need to look at
|
||
the other side of it - if we could support ourselves doing this, or at
|
||
least help to support ourselves, we could do a lot more music, and a lot
|
||
better music. Most of us don't even have MIDI gear, and we're already
|
||
making music on a par with most commercial music.
|
||
|
||
GD: You've been working on a CD project... Any news on that?
|
||
|
||
MA: The sister of Kosmic, Area 51 Records, will be releasing my first CD
|
||
hopefully right around NAID. My partner Riku Nuottajarvi and I are
|
||
working really hard to get the company off the ground and well
|
||
established, and I think you'll be seeing some crossover between Area 51
|
||
and Kosmic.
|
||
|
||
GD: In early January 1995, Kosmic's "Egg2: Trancescrambled" MusicDisk was
|
||
released. What are your future musicdisk plans, if any?
|
||
|
||
MA: There will be another musicdisk or two in 1995, but right now other
|
||
things are the priority.
|
||
|
||
GD: What experience do you have in writing music for games?
|
||
|
||
MA: Well, i've written music for several already, and hopefully I'll be
|
||
getting more work in this field this year. I'd like to warn other
|
||
musicians out there that it's not necessarily as great as it sounds. The
|
||
first few were fun but I've had some projects that were really not much
|
||
fun. It's not a good thing to do just for money, as I've learned the hard
|
||
way. I am going to be more selective about what jobs I take in the
|
||
future, to only be involved with things that I can be happy with.
|
||
|
||
GD: Are you planning to attend and compete in NAID? If so, will you be taking
|
||
the "Kosmic Train" to get there?
|
||
|
||
MA: I'm hopefully going to attend NAID, although I don't know yet if I will
|
||
compete. I'm not too sure about how i'm going to get there though.
|
||
|
||
GD: What kind of advice could you give to other musicians out there, who are
|
||
just starting out?
|
||
|
||
MA: Don't listen to people who dis you and push you down - just keep working
|
||
at it. The best way to improve is to just keep writing lots of music. The
|
||
more you write, the better you'll get. And don't be discouraged if it
|
||
seems to take you a long time - some people just get it faster than
|
||
others. It took me three years to get to where I really feel "good".
|
||
Above all, try hard to be your own person. Individuality and creativity
|
||
is what separates great music from good music. Technical prowess may be
|
||
wonderful, but you're nothing more than a performer if you don't have
|
||
your own style.
|
||
|
||
GD: We better throw in a Kosmic plug... Where can others find your songs, as
|
||
well as other KFMF releases via FTP, and is there any WWW sites for the
|
||
KFMF?
|
||
|
||
MA: We have two FTP sites, one in the U.S. and one in Europe. Both of them
|
||
are really big sites but have occasional hardware problems, so if one is
|
||
down, try the other:
|
||
|
||
US: ftp.wit.com in /klf/songs/ subdirectories
|
||
Europe: ftp.luth.se in /pub/misc2/kosmic/songs/ subdirectories
|
||
|
||
We also have WWW sites on both of these machines, in various states of
|
||
disrepair:
|
||
|
||
US: http://www.wit.com/~klf/
|
||
Europe: http://ftp.luth.se/pub/misc2/kosmic/www/
|
||
|
||
|
||
GD: Thanks for doing this interview! Hope to hear more from you and the rest
|
||
of the Kosmic guys in the future. Anything you'd like to add before we
|
||
close?
|
||
|
||
MA: Yes. A huge thank you to all the people out there who listen and who have
|
||
really let me know they appreciate the music. You are the reason behind
|
||
the KFMF!
|
||
|
||
,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
|
||
|
||
<<Code>>
|
||
|
||
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||
|
||
_____Optimizing Vector Transformations on a Pentium by Tom Verbeure
|
||
|
||
About 7 years ago, I sold my Commodore 128 after 2 years programming and
|
||
playing games (in C=64 mode) and bought my first 'big' computer: a 8088
|
||
clone, running at 8 Mhz with a hard disk of 32 MB.
|
||
|
||
A few months later, I was programming in assembler and trying to get the
|
||
maximum possible out of the processor. It was fun trying to make clever
|
||
combinations of exotic instructions instead of the normal ones, just to win
|
||
a few cycles. Back then, optimizing was a real art and the rules were not
|
||
clear.
|
||
|
||
Things have changed. Optimizing code on a 486 can be described by a
|
||
few simple rules:
|
||
|
||
1. try to avoid anything but MOV, ADD and a bunch of other
|
||
core-instructions.
|
||
2. Don't use the result of an instruction as in the next one.
|
||
|
||
Demo coders might add:
|
||
|
||
3. Avoid floating point, use fixed point math. It's almost always faster.
|
||
|
||
One of the only challenges left, is trying to find the best mapping of
|
||
registers to avoid memory variables in a main loop.
|
||
|
||
Since I bought a Pentium-90 about two months ago (yep, it has the famous
|
||
FDIV bug), things have changed again and optimizing is fun again too: not
|
||
only is the order in which instructions are executed extremely important,
|
||
there's also a major shift in the way calculations are done: under optimal
|
||
conditions, floating point adds are as fast as integer ones (1 cycle) and,
|
||
much more important, floating point multiplications can be more than 5
|
||
times as fast as their integer brothers!
|
||
|
||
During the rest of the article, I will show you how I optimized a standard
|
||
vector transformation in floating point. Starting with the compiler
|
||
generated code, ending with a routine that is about 40% faster.
|
||
|
||
Testing Environment:
|
||
* Pentium 90MHz with 8 mb ram
|
||
* C Compiler: Watcom 10.0a C/C++. 32-bits protected mode.
|
||
* Assembler: Tasm 3.0
|
||
* Dos extender: PMODE/W, public domain dos extender of Tran.
|
||
* Timer: ZenTimer of Michael Abrash, converted to 32-bits, with a
|
||
precision of 1 microsecond.
|
||
|
||
ZenTimer and PMODE/W are available at Hornet.
|
||
|
||
Timings were done as follows:
|
||
|
||
Diskcache disabled, to prevent disk operations during timings. First a dummy
|
||
loop was executed to time all overhead. The dummy loop had exactly the same
|
||
instructions, only the call to XformVect was replaced by XformVectDummy, an
|
||
empty routine in another c-file. (Don't place the dummy routine in the
|
||
C-file with the timing code. Watcom is clever enough to eliminate the dummy
|
||
code completely!) After the dummy loop, the main loop was executed, with
|
||
XformVect. By subtracting the dummy time from the real time, one gets the
|
||
time spend in XformVect.
|
||
|
||
Results:
|
||
|
||
I will upload the results and source code to Hornet as soon as possible. I
|
||
hope to have FTP-access on Friday, but no promises...
|
||
|
||
XFORMVECT:
|
||
|
||
The caller of XformVect has to give three parameters: a source and
|
||
destination vector and one 3x4 matrix to transform between them. As the
|
||
bottom row of a transformation matrix is mostly [0.0 0.0 0.0 1.0], I
|
||
removed it.
|
||
|
||
XformVect, written in C, was already in optimized form: every loop was
|
||
completely unrolled, it was just a sequence of 9 muls and 9 adds.
|
||
|
||
As a worst case test, I compiled XformVect with full debugging mode on,
|
||
without any optimizations. I used wdisasm to convert the resulting .obj
|
||
file into a readable .asm file. The result (M1.ASM) is horrible and takes
|
||
98 cycles to execute (still faster than the best 486 code!). No further
|
||
comments required.
|
||
|
||
The second and third test were also compiled C code, with full
|
||
optimizations enabled. Both resulted in the same code and would be near
|
||
optimal on a 486. The calculations for the X,Y and Z components are
|
||
identical, so just duplicate the listing below 2 times, update the offsets
|
||
and you get the actual routine (M2.ASM). Next to the assembler
|
||
instructions, the stack is listed as it is after execution of the
|
||
instruction on the left . The first one being ST(0) and so on...
|
||
|
||
C code: D->X=M[0][0]*S->X+M[0][1]*S->Y+M[0][2]*S->Z+M[0][3]
|
||
|
||
EBX: Source Vector
|
||
EDX: Matrix
|
||
EAX: Destination Vector
|
||
ST(0) ST(1)
|
||
Asm FLD DWORD PTR [edx+4H] ; M01
|
||
FMUL DWORD PTR [ebx+4H] ; M01*S->Y
|
||
FLD DWORD PTR [edx] ; M00 M01*S->Y
|
||
FMUL DWORD PTR [ebx] ; M00*S->X M01*S->Y
|
||
FADDP st(1) ; M00*S->X+M01*S->Y
|
||
FLD DWORD PTR [edx+8H] ; M02 M00*S->X+M01*S->Y
|
||
FMUL DWORD PTR [ebx+8H] ; M02*S->Z M00*S->X+M01*S->Y
|
||
FADDP st(1) ; M02*S->Z+M00*S->X+M01*S->Y
|
||
FADD DWORD PTR [edx+0cH] ; D->X
|
||
FSTP DWORD PTR [eax] ; <empty>
|
||
|
||
>From now on, S->X will be noted S0 and so on...
|
||
|
||
This is very straightforward code and easy to understand. For those who
|
||
have never played with floating point assembler: FLD pushes a float on the
|
||
stack. FMUL multiplies its operand with the top of the stack and puts the
|
||
result at the top of the stack, FADDP adds its operand to the top of the
|
||
stack, places the result in the specified element and pops the top of the
|
||
stack. FSTP stores the top of the stack and removes it.
|
||
|
||
Ok. This code (3 times) takes 58 cycles to execute, resulting in nearly 28
|
||
MFlops at 90MHz. These are workstation-like numbers! At first, it doesn't
|
||
seem a lot can be won by optimizing. However, several bad things happened
|
||
in this code: FADDP is executed immediately after FMUL, causing one extra
|
||
cycle and it is using the same register, causing another extra cycle.
|
||
|
||
Please note that FLD after FMUL/FADD never adds an extra
|
||
cycle to the FMUL/FADD, because we're not using the arithmetic unit
|
||
or the result of a previous calculation. So, the first 4
|
||
instructions are optimal.
|
||
|
||
How to avoid the extra cycles? Well, there is an instruction named FXCH
|
||
that switches the top of the stack with its operand. So FXCH ST(2) puts
|
||
ST(0) in ST(2) and vice versa. On a 486, FXCH costs about 3 cycles, so it
|
||
wasn't used very often on that processor. On the Pentium however, it's the
|
||
only floating point instruction that can run in the second pipeline
|
||
parallel to a limited set of other instructions. It's no coincidence that
|
||
this set consists of the most used instructions: FADD, FSUB, FMUL, FLD,
|
||
FCOM, FUCOM, FCHS, FTST, FABS and, most famous of all (except in Australia
|
||
?), FDIV.
|
||
|
||
This means that using FXCH after one of these instructions, no cycle
|
||
penalty is generated. It is FREE, use it! This leads us to the first
|
||
handcoded assembler version (M4.ASM). Only the code for one component has
|
||
been modified.
|
||
|
||
FLD DWORD PTR [EDX] ; M00
|
||
FMUL DWORD PTR [EBX] ; M00*S0
|
||
FLD DWORD PTR [EDX+4] ; M01 M00*S0
|
||
FMUL DWORD PTR [EBX+4] ; M01*S1 M00*S0
|
||
FLD DWORD PTR [EDX+8] ; M02 M01*S1 M00*S0
|
||
FMUL DWORD PTR [EBX+8] ; M02*S2 M01*S1 M00*S0
|
||
==> FXCH ST(2) ; M00*S0 M01*S1 M02*S2
|
||
FADDP ST(1), ST ; M00*S0+M01*S1 M02*S2
|
||
FADDP ST(1), ST ; M00*S0+M01*S1+M02*S2
|
||
FADD DWORD PTR [EDX+12] ; D0
|
||
FSTP DWORD PTR [EAX]
|
||
|
||
What has changed? After the FMUL, ST(0) is exchanged with ST(2), costing us
|
||
nothing. Next, two already calculated values are added, causing no extra
|
||
cycle to FMUL, because FADDP isn't executed immediately after FMUL and
|
||
FADDP doesn't use a result of FMUL. This code takes 56 cycles, exactly the
|
||
number we expected. Using this 'trick' for the 3 components, results in...
|
||
52 cycles (M5.ASM).
|
||
|
||
Looking at each component separately won't help us much: there's just
|
||
nothing to move or to load after the first FADDP.
|
||
|
||
The first FSTP costs 2 cycles and uses the result for the previous
|
||
instruction. That's a shame, because it costs us a cycle. We have 8
|
||
registers in our copro, so, just leave D[0] on stack and group all the
|
||
FSTPs at the end. This is gives us M6.ASM: two FSTP's removed and placed at
|
||
the end of XformVect. The last lines of M6.ASM now look like this:
|
||
|
||
FADD DWORD PTR [EDX+44] ; D2 D1 D0
|
||
FSTP DWORD PTR [EAX+8] ; D1 D0
|
||
FSTP DWORD PTR [EAX+4] ; D0
|
||
FSTP DWORD PTR [EAX]
|
||
|
||
Execution time of M6.ASM is 46 cycles. 6 less than M5.ASM. That's 2 cycles
|
||
for each replaced FSTP ?! Two? Don't ask me why, I'm happy with it. But
|
||
wait! We're doing it again: D[2] is stored immediately after it was
|
||
calculated. Replace the last 4 lines with this (M7.ASM) ...
|
||
|
||
FADD DWORD PTR [EDX+44] ; D2 D1 D0
|
||
FXCH ST(2) ; D0 D1 D2
|
||
FSTP DWORD PTR [EAX] ; D1 D2
|
||
FSTP DWORD PTR [EAX+4] ; D2
|
||
FSTP DWORD PTR [EAX+8]
|
||
|
||
... and ze rezultz ov ze Belgian Jury are... 43 cycles! I think that the
|
||
trick of moving FSTP to the end of the file also helps for a 486. If
|
||
someone can confirm this, please let me know.
|
||
|
||
At this point, we have done everything to optimize individual calculations
|
||
for the separate components and it was relatively easy to follow everything
|
||
without writing down a complete stack-trace. We have shaved of 15 cycles
|
||
from the initial 58, which is already a substantial improvement. Looking at
|
||
the code, we can see that there are two conflicts for each component: two
|
||
ADDs are executed after an ADD. If we can remove these conflicts, a 2*3=6
|
||
cycle improvement should be possible. These improvements are not as easy as
|
||
before: a lot of instructions have to be moved to get the wanted speed.
|
||
|
||
Let us first remove the conflicts in the first component.
|
||
|
||
The original code looked like this:
|
||
|
||
1 FADDP ST(1), ST ; M00*S0+M01*S1 M02*S2
|
||
2 FADDP ST(1), ST ; M00*S0+M01*S1+M02*S2
|
||
3 FADD DWORD PTR [EDX+12] ; D0
|
||
|
||
4 FLD DWORD PTR [EDX+16] ; M10 D0
|
||
5 FMUL DWORD PTR [EBX] ; M10*S0 D0
|
||
|
||
Conflicts are at the (2) and (3).
|
||
|
||
To remove the first conflict, place (4) immediately after (1). Exchange
|
||
M[1][0] with M[0][2]*S[2]. There are no more calculations pending, now
|
||
execute the FADDP (2). Exchange the result of the add with M[1][0] (hopping
|
||
back to ST(0)). We can now safely execute (5). Exchange the result with the
|
||
only remaining number on the stack et voile, we've eliminated the first
|
||
conflict. Do the same with the second conflict and you get this result
|
||
(M8.ASM) :
|
||
|
||
1 FADDP ST(1), ST ; M00*S0+M01*S1 M02*S2
|
||
4 FLD DWORD PTR [EDX+16] ; M10 M00*S0+M01*S1 M02*S2
|
||
FXCH ST(2) ; M02*S2 M00*S0+M01*S1 M10
|
||
|
||
2 FADDP ST(1), ST ; M00*S0+M01*S1+M02*S2 M10
|
||
FXCH ST(1) ; M10 M00*S0+M01*S1+M02*S2
|
||
|
||
5 FMUL DWORD PTR [EBX] ; M10*S0 M00*S0+M01*S1+M02*S2
|
||
FXCH ST(1) ; M00*S0+M01*S1+M02*S2 M10*S0
|
||
|
||
3 FADD DWORD PTR [EDX+12] ; D0 M10*S0
|
||
FXCH ST(1) ; M10*S0 D0
|
||
|
||
After dust had fallen back on the ground, one could time that, as expected,
|
||
everything ran in 41 cycles, 2 cycles less.
|
||
|
||
It is left as an exercise (don't you hate that phrase?) to do the same for
|
||
the second component.
|
||
|
||
Now let's have a look at the third component. Same problem here, but not
|
||
the same solution: there isn't anything to load anymore! Let's have a look
|
||
at it:
|
||
|
||
1 FADDP ST(1), ST ; M20*S0+M21*S1 M22*S2 D1 D0
|
||
2 FADDP ST(1), ST ; M20*S0+M21*S1+M22*S2 D1 D0
|
||
3 FADD DWORD PTR [EDX+44] ; D2 D1 D0
|
||
|
||
FXCH ST(2) ; D0 D1 D2
|
||
4 FSTP DWORD PTR [EAX] ; D1 D2
|
||
5 FSTP DWORD PTR [EAX+4] ; D2
|
||
6 FSTP DWORD PTR [EAX+8]
|
||
|
||
Well. When there's nothing to load, let's store!
|
||
|
||
After the first add, put A1 on top of the stack with FXCH and store it.
|
||
This is the result (M9):
|
||
|
||
1 FADDP ST(1) ; M20*S0+M21*S1 D1 D0 M22*S2
|
||
FXCH ST(1) ; D1 M20*S0+M21*S1 D0 M22*S2
|
||
5 FSTP DWORD PTR [EAX+4] ; M20*S0+M21*S1 D0 M22*S2
|
||
|
||
2 FADDP ST(2) ; D0 M22*S2+M20*S0+M21*S1
|
||
4 FSTP DWORD PTR [EAX] ; M22*S2+M20*S0+M21*S1
|
||
|
||
3 FADD DWORD PTR [EDX+44] ; D2
|
||
6 FSTP DWORD PTR [EAX+8] <---- Conflict. Aaaargh.
|
||
|
||
And now for the big disappointment: I've been moving instructions around
|
||
and tried various combinations, but I can't eliminate the conflict on the
|
||
last line. If someone can resolve it, please send your solution to DemoNews
|
||
as soon as possible.
|
||
|
||
As expected, we have saved (only) one cycle during the last step, giving a
|
||
total running time of 38 cycles. On a 90MHz machine, this gives us almost
|
||
43 MFlops, or more than 11 000 000 vector transformations/second! These
|
||
numbers certainly are comparable to lots of workstations.
|
||
|
||
It is very important to notice that this kind of optimization is unlike
|
||
traditional optimization techniques, used in demos or games: we haven't
|
||
replaced calculations by tables or removed mults using a special trick. On
|
||
the contrary: we have added instructions and haven't removed a single one!
|
||
On a 486, one could suppose there were some RISCy things hidden behind the
|
||
surface, now, it is so apparent, you just can't ignore it. Make use of it!
|
||
|
||
I wasn't able to time my code on a 486, but as we have added 10 FXCH
|
||
instructions, I think M9.ASM might be slower than the original, compiler
|
||
generated code. Moving FSTP to the end should be beneficial for both
|
||
processors, though.
|
||
|
||
What are the implications of all this:
|
||
|
||
First, when your program is speed-critical and math-intensive, you can't
|
||
just ignore the 486 and are almost forced to create a separate version for
|
||
each processor. If you can avoid floating point math but need lots of
|
||
multiplications, create an integer version for the 486 and a float point
|
||
version for the Pentium.
|
||
|
||
Secondly, even when you don't hand-optimize your floating point code, the
|
||
speed-increase can be big. If you do optimize, it can be Very Big.
|
||
|
||
Perhaps the most important implication, is that one might win even more by
|
||
redesigning the whole algorithm. I have a specific routine of my 3D engine
|
||
in mind, but I haven't tested it. I will try it in the future. If I was
|
||
right, I'll write about it.
|
||
|
||
I realize that a lot of people don't have a Pentium yet, and that it will
|
||
take some time until it becomes the standard machine at demo parties.
|
||
Nevertheless, I think one has to be ready for a big shift in the way we
|
||
approach algorithms, code optimization and the use of floating point,
|
||
especially in demos.
|
||
|
||
-Tom Verbeure / Synergy Design
|
||
|
||
References:
|
||
* Pentium Processor User's Manual: Volume 3, Architecture and
|
||
programming Manual, Intel 1994, ISBN 1-55512-223-X
|
||
* Pentium Optimizations and Numeric Performance, Stephen S. Fried,
|
||
Dr. Dobb's Journal, January 1995
|
||
* Zen of Code Optimization, Michael Abrash, Coriolis Group Books 1994,
|
||
ISBN 1-883577-03-9
|
||
* Mijn eerste kompjoeter, Annie M.G. Schmidt
|
||
|
||
Starting with the "begin 600" is a uuencoded copy of the source code
|
||
referred to in this article.
|
||
|
||
begin 600 vector_t.zip
|
||
M4$L#!!0 @ ( %J@.QZJ=8:)"@$ ,8+ & 33$N05--W99+B\(P%(7W
|
||
M0O]#E@Y&:$(7,KL98NFBI:$/9T!$^HC@0BR3+OKSI\$9%]-KQJ)5FKO)XGPY
|
||
MO6ERX'[NCE^'E2CJ[2M2Q=/84ZLH&FN"_M19E'N-6.K$O.J*0;A"/R(6$@#B
|
||
M]/T$R K;IRJ\RS[L(XP8XDF$UJWEO&4W6&3-U1L6BB^OYQW%YQJ^_3CN?J/+
|
||
MNS[K^&?-S(%8C3?(NT'JW\&[1]^#-0V!;XSQ=I7UE+Q@60]V%XL![P+NXU$G
|
||
M4S'I90YO^+]?-T[XK:^ES\'(2/,S([9G9(:(N2$BSPW1H,^1CC5'U- <47-S
|
||
M1)^<(_V?E14&!UD><G1QRCV+X'S\*TJ=",WDT3*Q)M]02P,$% " @ 9Z [
|
||
M'F/Q*,"< / , 8 !-,BY!4TVMD#T+PC 0AN<4^A\R*NG0"P[B)IRA
|
||
M0\40XP=(*;7&302;H3_?+E:K)D/)C??POMP]Q^O]<=N;VI8+2D2.E.!AHY!*
|
||
MK>C)7%HVRXHX(MV(]2X?P/,G_$VZ8R^R1)2DL1.8)HUU]K"Y[X(W_-?6[;[;
|
||
MTKI/;+4<T*IU?\-@M @&:19,!H2U 3X;_J_X>"$\H! >5@CW"NGKU$K'T1-0
|
||
M2P,$% " @ =* ['IFB 1S_ 0 &@@ 8 !--"Y!4TVUE6UOVC 0QU\[
|
||
M$M_AWF4MT50\-*&BOC"QRZKE2;&S(B&$& G:I%)0""H?O[83J/+0C$[4BHA]
|
||
M=[__70YR?.T/OF\[!D(><1G(Y1(A+^=1V1S?)@[O&!V#CD,_"N"TCD?;][BP
|
||
M]">VYI0(8LU'7"-SP2;BC0#.QB[S!-!'/Z001"/GP0;3]BDS(>+L&U89">>1
|
||
MJL/FMSEO47Z;)[?X<:=+(^&8<4'LGRH70H4>3%:;=/TK669S91\"(Q.X YKL
|
||
M,F74%JHL[B)+_Q[T>:3.?+-/ETD>TS'>5" (?1L\1D*990@/SUFZB??+)(;-
|
||
M<P*KP_*/SK]ZBA&*7S9I#-LLA6D2'V9(QJ^G-S-YJ8CU_JD4\;L4<;TKPNI"
|
||
MW?[L&->;00V0NJJ]9>D2(T.;P(9,@Q.%)3!MY^L/5.)EW!DBLH&J^EWV!5\A
|
||
M5&U(,UYH*WP1Q]L<[UU9\E93Z)XA@,[%NPUTM86]W+/+MB7/XC#3/Y1[A^JW
|
||
MH7@+1%A0_1\*NW<CI^I57V;N? >]:4&UAU :G)JTRUJD!FU5%,X&-6EJ4EOF
|
||
M !=!U;LHGNG]4O#_-P1?KB'XH@W!K0T9% T)F2@-(.;10#F:9JKTZ5D[O+O$
|
||
MZAAZD/]K9NMA#:8:]F8=^922\,=+PI]7DOZ?^UB7JLC%2QIQ#F>6)$/-.G&L
|
||
M""&Y4YM74$L#!!0 @ ( (*@.QYP&=]89 ( *$* & 338N05--M59;
|
||
MCYI %'X>$__#>;-;2>.,UI@U^X! 3%,5XV#7Q!##"MMMLE8#F/KS.Q? 80'%
|
||
MQ#5$8?@NAS-?\'SK#?J'9@.AF3ZUT%1WV#%YY@L3V] GM-EH-LSQPE[.$4+R
|
||
MU[!GU-'$-]$VIN[HVF9$!7+C6"N' :DUGEHS!\QG>V'"?#F:_#"@9=BFU8(E
|
||
MM;J$&^B4+IFG01\%#323/DHKC:9GHA!],;:HHQL_N05"4@ZM7O?A[E>PC3=\
|
||
M>0B6OH(G,(,HYHMBQ>0K4R\._YS$]8A?T_TQW 82TVR<56"^L V86?J"F0R!
|
||
M>KL O BFW\7ERS&&*-Z'002_P_WQ$/C@Q1"_!1#\]45=K^\^(/_?/O3A$(>P
|
||
M#OR3"XRY6W=<=G#$[OB>0[SD$%^C!%84:O?<%(==*!"*NCD"PV$7U7 99"3"
|
||
M7-8JO9:IRF<XDIA62IRV;RB*OY 'Q#[Y/I0Q$U'.]'S_P*GX06/;4F"W[\=N
|
||
MEY _]@T3_N">>*J*UN*^[ WF+@GT0B!P5DR&+1$EG4Q4/F8)K3H;6,U&3<,S
|
||
ME:2&2I?KV0\4C30E5W4*4<%J5 KT1#FCE^XX5G?\KA+M*H5"0P<R.=B]')\N
|
||
MD4TC27QPC0P1M8OXXKYV^YF\?/XJ;G6:B)JF&ZQ[G8Q?^M*YH9*!HI0&B]02
|
||
M*Z2+J.DJ:)PW%E_)!U'S<7^=]D690JM[,FP?H5%\R$&]I)770+WS6Z_LODQS
|
||
M&,2Y?UEK9L[Y#75<8&MB?!@^W>/3;(C9I&H,$?,'M/C<TCI#/Z4$<D,-Y!.*
|
||
M$,-9O1I2Z-U+&%%ZI0*&:&7 U%^<\9/_4$L#!!0 @ ( (N@.QYFP(-HB@(
|
||
M .,* & 33<N05--M59;;Z) %'X>$__#>7.[FDUG2@RIZ0,":3:K8AS<
|
||
M-FF(H8*IB8J!,=N?OW-!0 &EB6U(Q>&[G#GS!<\O3>_OVRV$)L;81F/#Y=?H
|
||
M12R,'-,8T7:KW;*>9\Y\BA!2GZ8SH6Y/_B>]A66X1F\QI!*Y<.U7EP.I_3RV
|
||
M)RY8+\[,@NE\./IM0L=T++L#<VH_$&%@4#KGGB9]E#3H6?116?7H\4X68LR>
|
||
M;>H:YA]A@9"20Z^K*-[^#9=L(98'8!NO\ 16F#"Q*%<LL3+V6;S^E-^'XCN-
|
||
M#O$R5)AV*U>!Z<PQ86(;,VXR@,3?AN G,.[#^X'!>L?B*#@L0UA]+C_ 9\ ^
|
||
M0@AW@02S",+->KO>^2R$A$5Q",MHM]JLE0E:;0((_D5Q 'L6PUL8?'J .&_[
|
||
M=N_Q2R"VAPTJ0MX%)$/\3%)82:BK>9D2]J!$*.L*1D;@..RAZRYZ[D*XRUN1
|
||
MWLA4]W(^QY'4M%:"=QDE[ >Y0PB=]:&*F8H*IA\$>T'%=SU^%B5V]W;L;@49
|
||
MG34.$[%Q7^ZJNK6XG_86"Y<4>B$0."LFPY9%R7TNJK990:O/!BYFHYFAEAN2
|
||
MHV&AR\WL=2_7.*;DJDXI*K@8E1(]5<[HE2>.BR=^4XENG<)Y<HBNDH.]B_%Y
|
||
M(&GC21H?W"!#I-A%?.E<'_JYO-I_';<^3:28IN;6VGUN7?G2^4(ENI<K'8-%
|
||
M&HF5TD6*Z2IIY >+K^2#%/-Q>YWN19GSL&F:"MLIM&+_?J%!ZJ67L/V)FJ]"
|
||
M=@73S0QKGNO*/P[9R:^T/;&FXD%QW.!K<OP8/-WBK]V2LTW=&"/G%^B(N:>3
|
||
M0[^E!/*%&L@W%"&'NV8U'*$W+V%(Z94*.**3 8_^\DZEY#]02P,$% " @
|
||
ME: ['NMQV_> @ [ L 8 !-."Y!4TVU5F^+HD <?CU!WV'>=;O*T4P1
|
||
MLK$O3"6.*XW&;H.0\++E#C8*<[D^_CDS:F,SFD(;4C8^S_/[,\_([_O0&)VZ
|
||
M'0!<<^Z N>FGU^R-+LP\RYR1;J?;L:=+;[4 /!?RW.)K[-OK&]MTS?U[80P
|
||
MY-9WUGX*),YT[K@^M-^\I0T7J\GLAP5[EF<[/;@BS@#3 "8AJS2F15X8#>HV
|
||
M>>&A=)+?L43,Y=0AOFG]I"$ X')@_7Z,#[_VNV1+E\?0,=?P%=K[<T(7V8I-
|
||
M5^9A$O^]L/\3^I\</^/=GF.ZG:L*7"P]"[J.N61AWC\B"*)_QSB"IR2&FWUT
|
||
M"2 8P\.F'Z0711P^/TJ(WR7$\SF#R4+:,,AQ*( 20=8M$5(<"D"#*$9!PFF4
|
||
MC4AO%%3DISB<!:V4N.S^@'/R#3^!]%/N@XJ9B?)NAU%THF3TI,-S(O&U.CXM
|
||
M'MP6CT8\>T0UVFBIJL@>PWH=Q(W1MASM-@0*R@U%12J\F(92/!.%204M)M%<
|
||
M4)%2JZ(RJV0=DK8,TRT+LXR0RELWK<C2#PM5Q2G _<((Z$8X(]:=."2>. 53
|
||
M%?!*+4J_=<G=\(:@D9^]NSJ2=9%X "5ZOCLY76E:).[O0R6T*@6IH0;W!0KJ
|
||
M=WJ >=-PP)N"ZCJ<O:JQV$54NZ^#42'/ZZ_B5KL)BVYJ$7K8+_C*5WF+3 Q!
|
||
M*3<6;B0FN0N+[I(TKAN+[O@#B_YXO(Y6*R.U>LC-5H8JZ@^%!O%WXSDYE=1"
|
||
M;K([&*T(6/'<X/'C?5(:5QS77M 'XMR5KK$Y;/SZB$^WPX:\JGF.#7*P1P?
|
||
MWA7Z)2G@%CG@+TB"3;G-<LBA#T]A0LB=#%)$KP#F\=D==\E_4$L#!!0 @ (
|
||
M +&@.QX(Z!)TI ( 'T- & 33DN05--M9=O:^) $,9?K^!WV'=>+^$P
|
||
M:Q"I]$5,@ARGB;CQ*D@0SUCNH*+$E.O'O_V3Q(W979.C%6GM=I[?/+,[DVZ_
|
||
MV:/AN=L!('#F/I@[$7G/GNG"+'2=&>YVNAUON@Q7"P _^Z& 8Y,]A696\^)
|
||
M'',[P2QR&_GKB 1B?SKW@PAZS^'2@XO59/;=A3TW]/P>7&%_@&@"!^,5R>GB
|
||
M1R:#IH<?>2H3%Y^8$6<Y]7'DN#]H"@ X#JQ?3NGQYV&?;>GR&/K.&CY![W#)
|
||
MZ");\>C*?)>E?][9SQ/Z,SZ]I?L#C^EVKA2X6(8N#'QGR=*\O"80)']/:0+/
|
||
M60HWA^0]AF ,CYM^3-XTXOCV6HGX58GX>LG#ZB##CHLX*X8U09U;$9 X*P8-
|
||
MLHQ*$2)9-J*\45)13^)0GE2)>-__!I?L"WH Y%7=!YDRA_+=WB7)F8JM!Q->
|
||
MLIK>T.EI\>"V>&O(W5N4T8:EJ4*CA$6J]N48"DYIQ2JM\&(:HK@329,*+(9H
|
||
M#I18:E54WBKY#M6.#-$CV^6.K)OVKITPZI<G3$]#IM-/DR6<9?.L5W%9F):B
|
||
M'R[K=I/N.)*UA-"0(DYEINC-@<C0J PQB6)7!HB7@^*KO TR+VM0[?1ZK J-
|
||
M9*-WAV5H49('05[<G7(JV#LSB(09;(>5V/N/,O7SB$9\'LFVRU3R1AB6C<";
|
||
MV-+D5(\FJ@R"BB%U8/=+!"H4558+.R.!54YI4W/Y"=G5!BH?N5J,XH]CG60T
|
||
M!=6>';M\GC0L&>62G2N[M!,/K3E(K N5CF[C#"55;N4Z5PT BK:W;=[VRG)'
|
||
M7)L>LLK]T0^\!?V%>!$F:^QB/'[ZB%>WPV[=J@LVNUG#'KV1]ZZAGV(!M?"
|
||
M/L$$^[>CF8<B],,M3#"^XX!$],K (C_[Q+OD'U!+ P04 ( " #.H#L>7\XV
|
||
M,9,! !^! "0 $U!5$U!5$@N0ZU276OB0!1]CN!_N+@O2<RV)L*^6/M4
|
||
M L):%]LMMD5*,%>]D)G S*3$7?K?.Q_5&'!!82?SDG//.??<F?E&?%54.<*-
|
||
M5(+XYFI[V^TT(,O4UD)'8*\>YE?;WC&B:8[9L\P<U\01O+0H14KUM"KNYWX=
|
||
M[0+/K\-=8#C78;?C/:#ZS4GM%NM2,(-Z$_U+64$248"%(2LD(/(M4BYU$T%U
|
||
MMQ->=SOO)>70<O 7Z6P^=3+=Y*_V(ZZ 1M::(9.H?%N-!I&D/UBNG20('$67
|
||
M?!H/1G0S'%&_KST\S_)?::GW>'+_&/]X>YR]I3]G\W2R\&,C_#C,8[E/N%+6
|
||
M[0D%0TZ;]ZK(:0,/9256:*K 4($2&9>&GRE"-Q=,C\8SGQWQ8.K_FND 0PCO
|
||
M4"H#1+ JN53@QG;B/;;G-EV_3F0O_GZ[&$/K@IS!ZV"I=]3H-#& OCD*,.L?
|
||
MDK@M>3Y#DK0E+\>2AC5<NKMI<C^?SAU?GCN^/'=\5N[X5.Z7T[F3RW,GE^=.
|
||
MSLJ='')_G'J!=Q5CN__R#+_L/P%02P,$% " @ TZ ['GC40MJY 0 )P0
|
||
M D !-051415-4+D.UDUUKVS 4AJ]E\'\0'BERICE.PBZV+H.M:TJAJ4WK
|
||
MCJSDQK/EY#!9#K8<&DK_>RW%B=QT;.QB%P;I.1_O>P[RH&];:/8EBLYO(^_,
|
||
MMII;Q"J)*\'XBD&*-[' >2Q+>, ;5N9,P')3\Q26():VU1^HDC<@$EZG#'^J
|
||
M9 J%M_I\Q#C\/())(5XE-C(KC;IPR00K8W[,G8=QZJV<+FG*=QT<G9FR# 1#
|
||
M7R\OKH(@O+Z;H;%O\)ZA\7O?]U7!IH 4Y3$(HDZN;3TVN[B\CL8C!%3MY*RH
|
||
MA:01)+\J^JW.\ZT^GMH61O-I<#/3BYMG19DW#(6!JD7A</(X]'S:?D_=T.A4
|
||
MZ3;@ELD[ 7*KB\FAC:OCJ.*,K<FPO1GEB:^:38N2 #53NLHV"N\CR%D9"-*6
|
||
MZ3PSQ3Y919 6^\X2J7N3DW!$#Q[H2;A7/C3-LD-7X^;MI UK 9V GG;OZ?^8
|
||
M_2>??[&X+D'(C#@+T<L<&HZ\N0Z^PC]^C^];&1-8"+.9C[C'@>(A3A6:]#*<
|
||
M;!/.*J?SBB@F&2]BZ1HT(.W<_<Z^^A_\(PL+\5)D]Z_F->\*O=0@^OK.2+E_
|
||
MTM(;>@902P$"% 4 ( " !:H#L>JG6&B0H! #&"P !@ ! "
|
||
M 33$N05--4$L! A0 % " @ 9Z ['F/Q*,"< / , 8
|
||
M 0 @ +@$ $TR+D%335!+ 0(4 !0 @ ( '2@.QZ9H@$<_P$ !H(
|
||
M & $ ( .X! !--"Y!4TU02P$"% 4 ( " ""H#L><!G?
|
||
M6&0" "A"@ !@ ! " 1! 338N05--4$L! A0 % " @
|
||
MBZ ['F; @VB* @ XPH 8 0 @ F08 $TW+D%335!+ 0(4
|
||
M !0 @ ( )6@.Q[K<=OW@ ( .P+ & $ ( $<) !-."Y!
|
||
M4TU02P$"% 4 ( " "QH#L>".@2=*0" !]#0 !@ ! " #K
|
||
M"P 33DN05--4$L! A0 % " @ SJ ['E_.-C&3 0 ?@0 D
|
||
M 0 @ LPX $U!5$U!5$@N0U!+ 0(4 !0 @ ( -.@.QYXU$+:N0$ "<$
|
||
M ) $ ( &T0 !-051415-4+D-02P4& D "0#: 0
|
||
&31(
|
||
|
||
end
|
||
|
||
,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
|
||
|
||
<<Denthor's High School Essays>>
|
||
|
||
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||
Hi there. For this article in DemoNews, I decided to break from my normal
|
||
"humour" section, and present something else. I wrote this essay a few
|
||
years ago, when I was in Form 4 (Standard 8/Grade 10). I converted it
|
||
faithfully, with no alterations (though I wanted to make one or two! ;-) It
|
||
didn't get a very good mark, but hey, what does that prove? ;) I only hope
|
||
it doesn't destroy my happy-go-lucky reputation :)
|
||
|
||
_____The Perfect Body
|
||
|
||
The lady behind the desk was an exxelon. Duke hated her instantly. She was
|
||
exquisite in every detail. The rounded figure, the full mouth, the blond
|
||
hair, each of these features made her more warped in his eyes.
|
||
|
||
"Good morning," she said, the silken syllables tinkling into place like
|
||
cold spring water. His hatred grew even more intense. "May I help you?" she
|
||
asked, unaware of the disgust written over his face.
|
||
|
||
Go help yourself, he snarled to himself. You traitor to your race, to your
|
||
heritage, to nature itself. He hated her. "I am here to see Mr. Linard," he
|
||
said, trying to keep the disgust out of his voice. "I have an appointment."
|
||
|
||
"One moment please," sung the goddess in the chair before him. "I will see
|
||
if he is in." Duke took a step back, too repulsed to be standing so close
|
||
to her. "Go right in," she smiled, showing a perfect row of teeth.
|
||
|
||
Duke walked passed the desk, careful not to get too close in case he
|
||
touched the exquisite, disgusting skin. He opened the office door and
|
||
walked inside.
|
||
|
||
A normal was sitting at the desk. Duke was astonished, and he jerked back
|
||
in surprise. Shaking, he closed the door and seated himself on the
|
||
luxuriant leather recliner in front of the desk.
|
||
|
||
The man behind the desk smiled. He had crooked teeth, stained with
|
||
nicotine. Duke felt as if he had never seen a more beautiful sight. "I can
|
||
see that you are surprised that I am not an exxelon," the man grinned. "My
|
||
name is Samule Linard. I am the president of the Exxelon Corporation. I
|
||
have been looking forward to our little meeting."
|
||
|
||
Duke, so astonished by the sight of another normal, merely nodded.
|
||
|
||
"I was watching you when you entered the building. It is surprising that
|
||
you hate the exxelons so. You must realise that they are the future. A
|
||
future which, I might add, you yourself may become a part."
|
||
|
||
"Plastic bastards!" snarled Duke. "That blond at your desk was probably a
|
||
hag with no teeth a few months ago. They're all so much plastic dolls. Wind
|
||
them up and watch them go." He spat on the carpet. "I hate them all."
|
||
|
||
The smile did not waver. "What you are experiencing is only natural. You
|
||
want to be one of them, but you are also frightened. I am here to help you
|
||
through this stage and into perfection."
|
||
|
||
"Go psych out someone else, shrink." The words that Duke spoke were however
|
||
much harder then his tone. He tried to collect himself. "I'm no traitor to
|
||
my race, not like those wax dummies out there."
|
||
|
||
Linards smile widened. "I see that you have the wrong idea about our
|
||
operation here. A few years ago, we at Exxelon Corporation realised that
|
||
with technology as far advanced as it is, disease, tooth decay, old age ...
|
||
none of it needed to occur. We allow people to become what they want. A
|
||
small amount of money for a new body. Become young again, change your
|
||
color, change your face. Perfect bodies for the perfect age. Welcome to
|
||
Utopia, Duke, no sickness or death anywhere. Every human is the perfect
|
||
human. And you can be too."
|
||
|
||
"And along the way, people lose their heritage, their individuality." Duke
|
||
kept his voice steady, but a flicker of uncertainty crossed his eyes.
|
||
Linard smiled. He knew he had him. "Tell me Duke, when did you last see an
|
||
act of racialism? Or heard about one? Not for quite a long time, I'm sure.
|
||
We have destroyed the greatest barrier to peace ever faced by man! Everyone
|
||
is now, in almost every way, truly equal! Who do you know that plays sport?
|
||
Why bother, when bulging muscles are just an hour of surgery away? You can
|
||
become young again, Duke, young and fit. You never have to grow old. You
|
||
can become truly immortal!"
|
||
|
||
The interview did not continue for much longer then that. Duke left the
|
||
room, promising to "think about it", with Linard knowing that he would be
|
||
back. They all came back.
|
||
|
||
He reached over the desk and flipped a switch, and activated the hidden
|
||
recorder. He paced up and down the room as he spoke. "Report for the
|
||
Directors meeting next week. Ladies and gentlemen, the time has arrived. We
|
||
have achieved the last convert. Every single person on the planet, aside of
|
||
course from the board of directors, is, or is about to be, an exxelon. In
|
||
approximately one month, people will realise that after a while, their
|
||
perfect bodies will begin to decay. And the only way to maintain eternal
|
||
youth, is to come back to us for more surgery.
|
||
|
||
The members of the board will surely recognise that, in addition to
|
||
becoming the richest people on the planet, they will also be the most
|
||
powerful. Anyone who does not cooperate will be allowed to grow old and
|
||
die, and the fact that all the exxelons have been sterilised ensures that
|
||
there will be no unconverted, rebellious youth to contend with. The
|
||
directors of course will not have these restrictions when they are
|
||
converted. Fellow directors, we have complete control of the planet Earth.
|
||
This is the true Utopia, and we are it's collective Gods. We shall rule
|
||
supreme. Forever."
|
||
|
||
- Denthor denthor@beastie.cs.und.ac.za
|
||
|
||
,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
|
||
|
||
<<Rumors>>
|
||
|
||
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||
|
||
- Musicman left epinicon
|
||
- Necros won't be at NAID
|
||
- Zer0 wastes too much time with MUD's
|
||
- Quarex has been averaging 4 glasses of milk a day since age 4.
|
||
|
||
,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
|
||
|
||
<<Back Issues>>
|
||
|
||
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||
|
||
_____How to Get 'em
|
||
|
||
After reading this issue of DemoNews, you may be wondering how you can get
|
||
previous ones. Well fear not! There are two different ways to do so:
|
||
|
||
1: FTP to hornet.eng.ufl.edu and go to /pub/msdos/demos/news/OLD_NEWS and
|
||
start downloading anything you see.
|
||
|
||
2: Now you can request back issues of DemoNews via e-mail. Start a letter
|
||
to listserver@oliver.sun.ac.za (any subject line) and in the body of the
|
||
letter include "get demuan-list <index>" where INDEX refers to the
|
||
index number of the issue.
|
||
|
||
For example: get demuan-list 43
|
||
|
||
This would retrieve DemoNews #76 (part 1 of 2).
|
||
|
||
For more recent issues that are split into multiple parts, you must send
|
||
an individual request for each index number.
|
||
|
||
_____Descriptions
|
||
|
||
Issue Index Date Size Description
|
||
----- ----- -------- ------ ----------------------------------------------
|
||
76 43,44 12/25/94 92589 Interview with EMF, DemoNews Readers Write,
|
||
Kimba's Life Story, X-Mas in the Demo Scene,
|
||
CORE, Demo & Music Database, Interview with
|
||
Purple Motion/Future Crew, Interview with
|
||
Krystall/Astek, Common Sense ][ by Perisoft,
|
||
Its X-Mas in Africa, Interview with Maxwood
|
||
of Majic 12, Assembly Part ][, Common Sense
|
||
Response by Stony.
|
||
|
||
77 45,46 01/01/95 101100 Chart History, Snowman Near-Disaster, Son of
|
||
Snowman, The Party 1994, Making Waves, Using
|
||
Assembly Part 2.
|
||
|
||
78 47-49 01/08/95 111185 The Party 1994: Results and Reviews, Report
|
||
by Stony and Friends, What happened to PC-
|
||
Demo competition. Editorial: TP94 = ASM94
|
||
part 2. Egg2: Trancescrambled Review, More
|
||
on Fast Tracker 2.03. General Rambling by
|
||
Denthor.
|
||
|
||
79 51 01/15/95 41832 A Day in the Life of Snowman, Ambient Sample
|
||
CD 1, Where's the Sound Blaster, TP94
|
||
Graphics review.
|
||
|
||
80 55 01/22/95 27028 DemoNews/HTML, Traffic Jam, CodeThink(School);
|
||
The Solo Sample CD
|
||
|
||
81 58,59 01/29/95 53434 NAID Survival Guide, General Protection
|
||
Relationships, Ctrl-Alt-Delete, Now Its a
|
||
Game!, Assembly Part 3 (It ain't no party),
|
||
BSP Trees
|
||
|
||
,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
|
||
|
||
<<Advertisements>>
|
||
|
||
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||
|
||
_____Mind Side Out // Intro for : cd_demo1.zip
|
||
|
||
If you're looking for a fresh, new band to check out, I highly suggest
|
||
checking out MSO. I happened upon this band by chance, after reading an
|
||
advertisement on the wall of a local record shop. I found their internet
|
||
address and talked with one of the members, and decided to give them a try.
|
||
I'm glad I did. Anyhow, here's a review of the Phoenix band's first and
|
||
only cd, Synergy.
|
||
|
||
Synergy is a compilation of a Phoenix synthpop bands three cassettes. >From
|
||
my understanding, it was completely done by the band themselves. The album
|
||
chonricles the band's past four years, where they've been and where they
|
||
are going. The album is split into three 'phases.' Phase 3 starts off the
|
||
album, with their most recent material. It opens with a wonderful track
|
||
called 'Sacrifices.' The intro to the song immediately reminded me of Red
|
||
Flag. Very well written song, kept up the synthpoppy programming, but with
|
||
an industrial flare. The other tracks on this phase keep up this feel,
|
||
some a little harder, some not so hard. At times, Roman Chance's vocals
|
||
sound almost a bit like Michael Hutchance of INXS. You sit there listening
|
||
to the song, trying to get over the fact that he can sound almost exactly
|
||
like him. One of the best and most memorable tracks from the Phase, is
|
||
Twist (blood mix). No, its not an NIN cover of the pre-ring finger track.
|
||
Its an original song, with a very catchy sound. Twist, also appears in
|
||
different mixes in the other two stages, but the stage three mix is the
|
||
best, IMHO. Phase 3 ends with the track 'money' which askes the question,
|
||
"what's gonna happen to us when the money goes?" Very playful programming
|
||
on this track.
|
||
|
||
Phase two opens up with a kinda Cause & Effect-ish type of track. Good
|
||
steady beat, great programming and awesome vocals. No Michael Hutchance on
|
||
this track. The most memorable track in this phase, aside from the catchy
|
||
opening track, 'can't tell' has to be 'mariana diving.' Nice, calm,
|
||
relaxing beat and programming. It opens with an beach sample, with the
|
||
waves coming onto shore. The song creates a different kind of mood from
|
||
the other tracks, not as energetic, a sort of laid back mood. Most of the
|
||
tracks on this phase aren't as hard as phase three. Mostly reminiscent of
|
||
a combination of Red Flag and Cause & Effect, if I had to think of someone
|
||
they sounded like. They in no way copy either band's sounds and nicely
|
||
develope a sound, all their own. Another song that touched me personally
|
||
on this phase was the 14th track, called 'more.' A lyrically rich song,
|
||
one definately worth a listen.
|
||
|
||
Phase one ends the cd compilation with tracks 16 through 20. The
|
||
programming and sound quality on these tracks isn't quite as complex as the
|
||
other two phases, but that's not to say that these tracks are bad. In fact,
|
||
most of them are really good. These tracks reminded me a lot of early
|
||
Depeche Mode stuff, but with a modern drum machine. Real playful sounds,
|
||
intense programming, and unlike early dm stuff, intense lyrics. One of my
|
||
favorite tracks on this album is in this phase. 'spirits of jealousy's'
|
||
lyrics hit home for me. Perhaps thats why I liked it so much. This track
|
||
also features a female back up vocalist, who actually doesn't ruin the
|
||
track unlike most back up vocalists.
|
||
|
||
Overall, a very decent effort by an unsigned band. They are in the process
|
||
of putting up a home page, I will annouce it here (if they don't
|
||
themselves) when its up. Or, you can always look at
|
||
http://mcmuse.mc.maricopa.edu/~xymox/ to see if its there, and my other
|
||
links.
|
||
|
||
Check out the demo: cd_demo1 if you would like a sample.
|
||
|
||
If you are interested in the band, I can give you information on how to get
|
||
a hold of their cd.
|
||
|
||
Email me at: xymox@primenet.com or Mind Side Out at:
|
||
mndlink@primenet.com / Enjoy the demo!
|
||
|
||
_____Help Me!
|
||
|
||
Hi mod fellows!! I have a big question for you . Would you answer me? I
|
||
hope so :) Well , I am looking for spanish techno mod's, specially if
|
||
they are made in Valencia, if you have any idea please contact me
|
||
PLEASEEEEEE!!!!!!!
|
||
|
||
There is a song I had heard that it's really good, it's call "Poem without
|
||
words" is a really cool techno song that I heard last summer in Spain, is
|
||
anyone knows if is available in mod format please let me know! :)
|
||
|
||
Thanks!
|
||
|
||
Jose Luis Torres R. e@mail: treboll@a.cs.okstate.edu
|
||
|
||
Wait for my new release of my own techno mix is gonna be one of the best
|
||
you had ever seen, it's a mix based on the best songs that last summer were
|
||
heared in Spain, if you know what I am talking about wait for my mod file
|
||
and you'll see.
|
||
|
||
,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,
|
||
|
||
<<Closing Comments>>
|
||
|
||
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||
|
||
I've been watching a lot of David Letterman lately. That show has inspired
|
||
this week's Top 10 list for DemoNews:
|
||
|
||
Top 10 Mistakes of Beginning Assembly Language Coders:
|
||
|
||
9. Using ANSI standards to make sure code is portable to different platforms
|
||
8. XOR AX,0 used to clear out registers
|
||
7. Look ma', no stack!
|
||
6. "What does that 'H' after all the numbers mean?"
|
||
5. "PUSH and POP? Isn't that by Nine Inch Nails?"
|
||
4. INT 2H graphics mode
|
||
3. Storing sin and cos tables at address 0000:0001H for easy access
|
||
2. "I do not need sleep, I can code Assembler"
|
||
1. "Comments are sissy"
|
||
0. One word: "MASM"
|
||
|
||
See you in CyberSpace,
|
||
|
||
-Christopher G. Mann (Snowman)-
|
||
r3cgm@dax.cc.uakron.edu
|
||
|
||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,End.of.DemoNews.082.
|
||
|