```
7 00174 nooon_st.zip 1 00452 ft205.zip 1 00088 dn114_3d.zip
8 00163 ftj_ymca.zip 2 00192 cp16.zip 2 00073 kmagv2.zip
9 00149 scrmt321.zip 3 00182 ft204.zip 3 00068 alabv12.zip
10 00144 acdu0196.zip 4 00149 scrmt321.zip 4 00058 water.zip
5 00053 dos32v33.zip
```
=-[Uploads]-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=----------------------------------------------------------[File Information]-=
All files listed below are on ftp.cdrom.com under /pub/demos.
Please keep in mind that all ratings are subjective.
If your file transfers are too slow, there are several alternatives:
Our code mirror is ftp.co.iup.edu/code. ftpadmin@ftp.co.iup.edu for help.
Try getting files from the web at http://www.cdrom.com/pub/demos
See /hornet/demonews/demonews.102 for details about ftpmail.
You may also wish to check out a couple of other good demo sites:
ftp://ftp.arosnet.se/e:\demo maintained by Zodiak / Cascada
ftp://hagar.arts.kuleuven.ac.be/demos maintained by Sleeping Dog / Natives
Here are also a few good WWW links to try out (under construction):
http://www.th-zwickau.de/~maz/sound.html for music and sound utils
=-------------------------------------------------------------[Demos:General]-=
Location /demos/alpha Size Rated Description
=-------------------------------- ---- ----- ---------------------------------=
/1994/t/thefirst.zip 283 *** The First by Strontium 90
/1995/f/fdg_ind.zip 352 *** Indaba by Fudge
/1996/0-9/1frame.zip 7 **** 1 Frame by Dlux
/1996/f/frosty.arj 20 ** Frosty by Sir Hes
/1996/n/nn.arj 243 *+ NoNameIntro by Sir Hes
General Probe 1996 4k Intros (GP96:in4k:)
/1996/a/ame_pain.zip 5 **** 01: Pain by Amnesty
Juhla 1996 Demos (JUH96A:demo:)
/1996/o/onenight.zip 261 ** EE: One-Night Stand by QP
Juhla 1996 64k Intros (JUH96A:in64:)
/1996/e/emf_porn.zip 61 ***+ 15: Porno by EMF
=-------------------------------------------------------------[Music:General]-=
Location /demos/music Size Rated Description
=-------------------------------- ---- ----- ---------------------------------=
/disks/1995/x/xmas95.zip 1793 **+ Xmas 95 by Epinicion
/songs/1994/mod/f/fantasy.zip 199 **+ Fantasy World by ??
/songs/1994/mod/m/minion.zip 137 ** Minions of Power by ?
/songs/1995/s3m/2/2t2-sadw.zip 289 ***+ A Sad World We Live In by B00mer
/songs/1995/s3m/a/arn_bara.zip 92 *+ Maior Abandonado by nS
/songs/1995/s3m/a/arn_fine.zip 114 **+ I Feel Fine by nS and Minesota
/songs/1995/s3m/a/arn_free.zip 254 *** Free as a Bird cover by Minesota
/songs/1995/s3m/a/arn_iron.zip 182 *+ Iron Man cover by Minesota
/songs/1995/s3m/a/arn_mk2t.zip 340 * MK 2 Techno by CJ Cyberjobe
/songs/1995/s3m/a/arn_sdm.zip 214 *+ Short Dick Man by HBM
/songs/1995/s3m/a/arn_strt.zip 245 *+ Funky Street Walk by CJ Cyberjobe
/songs/1995/s3m/a/arn_tnk.zip 108 ** Thinking About You by HBM
/songs/1995/s3m/a/ascen.zip 264 *** Ascension by Master of Darkness
/songs/1995/s3m/e/ele-plan.zip 237 *** Planet on Acid by Elemental
/songs/1995/s3m/f/flp-bd.zip 206 ** Bioptic Dichotomy by Asken
/songs/1995/s3m/f/flp-wnds.zip 174 *** Windstorm by Mondo
/songs/1995/s3m/h/highden2.zip 72 *+ High Density by Warp
/songs/1995/s3m/j/js-cattl.zip 153 * Wonder Cattle by Speig
/songs/1995/s3m/k/kon-no.zip 111 **+ Accept no Subs. by Flacco + Waarp
/songs/1995/s3m/v/v8r-ap.zip 210 *** Acid Phreak by viol8r
/songs/1995/s3m/w/wait4u.zip 3 *** Waiting for You by falcon
/songs/1995/s3m/w/wings.zip 64 ** Wings by Warp
/songs/1995/s3m/w/wings3.zip 101 ** Wings 3 by Warp
/songs/1995/s3m/x/xmass.zip 329 + X-mass jam by BigpiE
/songs/1995/s3m/y/ybbanjo.zip 156 ***+ Banjo jammin by Yannis
/songs/1995/s3m/y/ybblub.zip 50 **+ Blubbiest Places by Yannis
/songs/1995/s3m/y/ybecho.zip 176 ***+ Echomation by Yannis
/songs/1995/s3m/y/ybmirac.zip 47 **+ Little Miracle by Yannis
/songs/1995/s3m/y/ybtones.zip 67 ***+ Harmonic Tones by Yannis
/songs/1995/s3m/z/znc-80kh.zip 72 ** Around the World in 80 by zinc
/songs/1995/xm/f/faraway.zip 54 ** Faraway Trek by Joshua Szmajda
/songs/1995/xm/f/flp-glid.zip 135 **+ Sunset Glider by Wolfgang Krauser
/songs/1995/xm/f/flp-jour.zip 160 *** Journey to Sky Tower by Archon
/songs/1995/xm/f/flp-slow.zip 274 *** Slow Love by Gillespie
/songs/1995/xm/g/grv_jour.zip 181 *** N R Livet Leker by Zalt
/songs/1995/xm/x/xmlookup.zip 4636 ** Lookup by Omega
/songs/1995/xm/x/xtd_040.zip 311 ***+ Guiding Light by Virtual Rhythm
/songs/1995/xm/x/xtd_045.zip 879 *+ Fallin Apart by Assex
/songs/1995/xm/x/xtd_046.zip 400 **** Allegorie by Virtual Rhythm
/songs/1995/xm/x/xtune.zip 111 *+ Xtunes by Darius
/songs/1995/xm/z/zan-extr.zip 111 ** Extreme Overload by zanti
/songs/1996/mod/g/grv_fun.zip 194 **+ Funkadelic's Jam by Omen
/songs/1996/mod/h/hnz-bear.zip 140 *** Bear by Hunz
/songs/1996/mod/h/hnz-evnt.zip 76 **+ Events by Hunz
/songs/1996/mod/h/hnz-fary.zip 56 ** FairyFloss by Hunz
/songs/1996/mod/h/hnz-free.zip 75 ***+ Freestyle by Hunz
/songs/1996/mod/h/hnz-grow.zip 112 ***+ Growing to fast? by Hunz
/songs/1996/mod/h/hnz-mile.zip 82 *** 24,000 miles by Hunz & Hollywood
/songs/1996/mod/h/hnz-sfrn.zip 138 ** Sufferings by Hunz
/songs/1996/mod/h/hnz-tech.zip 96 **+ Techno Horses by Hunz
/songs/1996/mod/h/hnz-time.zip 123 *** Time Has Gone by Hunz
/songs/1996/mod/h/hnz-tran.zip 117 ***+ Transfer by Hunz
/songs/1996/mod/i/inspired.zip 83 *** Inspired by Strix
/songs/1996/mod/k/k_sting.zip 255 ***+ Stingray by Hollywood
/songs/1996/mod/l/luminous.zip 167 ** Luminous Future by Smash
/songs/1996/mod/l/lw_venus.zip 97 **+ Venus Power by Michiru
/songs/1996/mod/t/t_krdogg.zip 133 ** Kraq Dogg by David Weekly
/songs/1996/mod/y/ybstrsrf.zip 174 **** Street surfin by Yannis
/songs/1996/mtm/k/k_lodge.zip 391 ***+ Lodge of 3 Globes by Maelcum
/songs/1996/mtm/k/k_opp.zip 87 *** Opposition by TheHacker
/songs/1996/other/k/kx-synd.zip 435 *+ Syndicate of Death by Kxmode
/songs/1996/other/m/mt-ww0.zip 217 **+ Wantonly Waiting by Mindtrip
/songs/1996/other/n/no-secon.zip 107 *** Second Sight by Delta X
/songs/1996/s3m/a/a_ap.zip 145 ***+ Atomic Plague by Matt Friedly
/songs/1996/s3m/a/am_tpe.zip 129 ** Psychedelic Experience by Amorphis
/songs/1996/s3m/a/arn_geek.zip 95 **+ Geek Stink Breath by Minesota
/songs/1996/s3m/a/athought.zip 167 **** Another Night of Thought by ZaStaR
/songs/1996/s3m/b/brokenw.zip 84 **** Broken Wings by Warp
/songs/1996/s3m/f/foo.zip 915 ** I'll Stick Around by Stein
/songs/1996/s3m/g/g_abort.zip 82 * Abortions Suck by Huggy Bear
/songs/1996/s3m/h/hd-chnce.zip 88 *** No More Chances by Crus
/songs/1996/s3m/i/iha-acid.zip 79 **+ Acidic Perspiration by Iha
/songs/1996/s3m/j/jbmutate.zip 311 **+ Mutational Pathogen. by Schizoid
/songs/1996/s3m/j/jezebel.zip 978 + Juke Joint Jezebel by Stein
/songs/1996/s3m/j/judgmnt.zip 271 **+ Judgement by mJan
/songs/1996/s3m/k/k_ballad.zip 380 **** The Last Ballad by Siren
/songs/1996/s3m/k/k_lproof.zip 194 *+ Living Proof by GooRoo
/songs/1996/s3m/k/k_softy.zip 204 + Softy by Karl
/songs/1996/s3m/l/life.zip 46 ** Life is Life by ReCoder
/songs/1996/s3m/n/nin_ruin.zip 727 ***+ Ruiner (remix) by Bedlamite
/songs/1996/s3m/p/plasma.arj 202 **+ Plasma by Petador
/songs/1996/s3m/p/pr-calln.zip 186 *** The Calling by Darkwolf
/songs/1996/s3m/p/pr-stand.zip 281 ***+ Standing Close by Darkwolf
/songs/1996/s3m/v/v-inner.zip 145 ***+ Inner Turmoil by Vegas
/songs/1996/s3m/w/wr-ccity.zip 59 *** Century City by wraith
/songs/1996/s3m/w/wr-utopi.zip 186 *** Utopia by wraith
/songs/1996/s3m/y/ybfurble.zip 9 **** Invasion of Furbles by Yannis
/songs/1996/s3m/y/ybtiny.zip 6 *** Tinypino by Yannis
/songs/1996/s3m/y/yee-had.zip 139 **+ Yeeeeeeeehawwwwwwww! by Hadji
/songs/1996/s3m/y/yyz.zip 391 *** Yyz by Ler
/songs/1996/s3m/z/zn-happy.zip 195 ***+ Happy Daze by zinc
/songs/1996/s3m/z/zn-jazzt.zip 90 **+ Jazzting by zinc
/songs/1996/xm/e/el-defin.zip 100 *** Defining by Electric Lucidity
/songs/1996/xm/e/eternity.zip 573 ***+ Eternity by Khyron
/songs/1996/xm/f/fh-fperf.zip 114 ** Fake Perfection by FH
/songs/1996/xm/f/fh-sf96.zip 117 ** Strange Feelings 96 by FH
/songs/1996/xm/f/flp-gl01.zip 144 **+ Fallen from Grace by Gillespie
/songs/1996/xm/f/fm-snoop.zip 292 ***+ Raping the Dog by Mellow-D
/songs/1996/xm/f/fr-loye.zip 256 ***+ Love Opens Your Eyes by Nabo & Teo
/songs/1996/xm/g/gl-dist.lzh 385 ***+ Distance by Glitch
/songs/1996/xm/g/gl-lapse.lzh 226 ** Lapse by Glitch
/songs/1996/xm/g/grv_wate.zip 110 ***+ Waterfall by Balrog
/songs/1996/xm/h/hyperion.zip 515 **+ Hyperion by Outrage & Orc
/songs/1996/xm/j/j-kgdsky.zip 282 ****+ Kingdom Skies by Jase
/songs/1996/xm/k/k_mhouse.zip 581 *** My House by Vivid
/songs/1996/xm/l/lok_deep.zip 241 *+ Deep Inside by Ganja Man
/songs/1996/xm/l/lok_spkl.zip 155 *+ Speed Kills by Ganja Man
/songs/1996/xm/m/maz-last.zip 284 **** Fifteen by Dynamic Harmony
/songs/1996/xm/m/moonscpe.arj 613 *** Moonscape by Petador
/songs/1996/xm/m/mr_clytn.zip 309 ****+ Claytons by Mick Rippon
/songs/1996/xm/o/ophelia2.zip 350 ***+ Ophelia 2 by Xerxes
/songs/1996/xm/p/ploff-01.zip 374 *** It Makes me Happy by Ploffer
/songs/1996/xm/z/zan-reli.zip 185 *** Relieved by zanti
The Party 1995 4-Channel Music (TP95:m4ch:)
/songs/1995/mod/f/fountain.zip 454 ****+ 01: Fountain of Sighs by Unreal
/songs/1995/mod/c/compact.zip 142 **** 03: Compact Caviar by Mystical
/songs/1995/mod/k/kissmyas.zip 244 **** 05: Kissmyass by Jazz,Haujobb
/songs/1995/mod/j/jazzin.zip 297 **** 09: Jazzin by FBY
/songs/1995/mod/c/chico_d.zip 318 ***+ 11: Chico de Loros by Gandbox
/songs/1995/mod/w/what_gui.zip 557 ***+ 13: What Guitar by Mindfuck
/songs/1995/mod/t/trancepl.zip 579 *** 14: Trans Playground by Prophet
/songs/1995/mod/p/post_ouv.zip 275 ***+ 15: Post Ouverture by Trip
/songs/1995/mod/p/play_kid.zip 482 **** 16: Play Kid by Unison
/songs/1995/mod/d/december.zip 164 ***+ 17: December by Pinocchio,Contraz
/songs/1995/mod/s/sleeping.zip 119 **** 19: Energy by Laz
/songs/1995/mod/p/party_su.zip 147 **** 20: Party Sux by Dreamer
/songs/1995/mod/s/separate.zip 133 ***+ 21: Seperate Ways by Clawz
/songs/1995/mod/m/magic_jo.zip 243 ***+ 22: Magic Journey by Fash
/songs/1995/mod/s/spritzst.zip 215 *** 23: Spritzstunden by Slide G.
/songs/1995/mod/w/world_of.zip 278 ***+ 26: World Insanity by Lizardking
/songs/1995/mod/b/blacksil.zip 116 *+ XX: Black Silver by ???
/songs/1995/mod/b/bnmainia.zip 100 ** XX: Bn Mainia by Maf + Eagle
/songs/1995/mod/b/bornin57.zip 108 *** XX: Born in 1957 by Dave
/songs/1995/mod/c/campaign.zip 218 **+ XX: Virulent Campaign by Sonic
/songs/1995/mod/c/can_pas.zip 162 *** XX: Canned Passion by Dep
/songs/1995/mod/c/caphlame.zip 211 *+ XX: Caph and Lamed by Prick
/songs/1995/mod/c/cascade.zip 240 ** XX: Cascade Fsol by The Fox II
/songs/1995/mod/c/chaseit.zip 162 *** XX: Chaseit by Vincent
/songs/1995/mod/c/china.zip 229 ** XX: China by Al Bundy
/songs/1995/mod/c/chr_monk.zip 390 *** XX: Trance Monks by Chronic
/songs/1995/mod/c/classic.zip 255 ** XX: Classical Interrupt by CDK
/songs/1995/mod/c/cloudz.zip 361 **+ XX: Behind the Cloudz by Bier
/songs/1995/mod/c/co-coco.zip 171 *** XX: Co-Cocorico by Shad + Live
/songs/1995/mod/c/collecti.zip 364 **+ XX: Collective H. Compo by Wax
/songs/1995/mod/c/complete.zip 153 ***+ XX: Complete Disaster by Psycho
/songs/1995/mod/c/control.zip 224 *** XX: Control by Hilander
/songs/1995/mod/c/cracklin.zip 230 * XX: Crackling Turd by Taste
/songs/1995/mod/c/crazy_s.zip 266 ***+ XX: Crazy, Sexy, Cool by Virgill
/songs/1995/mod/c/creature.zip 289 *** XX: Creature by Odie
/songs/1995/mod/d/do_you_l.zip 209 *+ XX: Do You Love by VVV,MJK
/songs/1995/mod/d/dragonbr.zip 406 ** XX: Dragon Breath by Black Dragon
/songs/1995/mod/d/dreamvoy.zip 147 ***+ XX: Dream Voyage by Gizmo
/songs/1995/mod/e/easy_lis.zip 144 **+ XX: Easy Listening by Bohdi
/songs/1995/other/ecnofunx.zip 369 [n/a] XX: Ecno Funx by Gigantbox
/songs/1995/mod/e/en_el_ca.zip 167 **** XX: En el Cafe by Tiny
/songs/1995/mod/e/especial.zip 100 **** XX: Espcial Special by Knaekpolsen
/songs/1995/mod/e/exrcompt.zip 220 ***+ XX: Exrcomptun by Elixir
/songs/1995/mod/f/field-da.zip 507 **** XX: Field-Day by Scorpik
/songs/1995/mod/f/forever_.zip 362 *+ XX: Forever Love by Trance
/songs/1995/mod/f/ft_magic.zip 233 ** XX: FT Magic Sound by Thiesen
/songs/1995/mod/g/gettings.zip 193 ** XX: Getting Started by Knox
/songs/1995/mod/g/gluppobe.zip 373 ***+ XX: Gluppobert by Quazar
/songs/1995/mod/g/gnaule.zip 240 **+ XX: Gnaule by Doh
/songs/1995/mod/g/god_of_.zip 254 ** XX: God of Errors 2 by Raze
/songs/1995/mod/g/goingtot.zip 204 **+ XX: Going to the Top by Mot,Istari
/songs/1995/mod/g/greenday.zip 275 ** XX: Greenday Thing by Futuremind
/songs/1995/mod/h/hei-bang.zip 55 + XX: Bim Bom Bam by HeiZahn
/songs/1995/mod/h/hey_skat.zip 251 ** XX: Hey Skat by Splif
/songs/1995/mod/h/higher_a.zip 193 **+ XX: Higher by Randall,Eracore
/songs/1995/mod/h/hooyowyc.zip 170 ***+ XX: Hoyowy Chrzaszcz by Spiryt,Ils
/songs/1995/mod/i/iconbast.zip 197 *+ XX: Iconbastic by Maytz
/songs/1995/mod/i/illusion.zip 172 ***+ XX: Illusion by Trance
/songs/1995/mod/i/in_addic.zip 225 **+ XX: In Addiction by TNT
/songs/1995/mod/i/in_my_ba.zip 286 *** XX: In My Backyard by Fender
/songs/1995/mod/i/innertra.zip 130 **+ XX: Innertrance by KTN
/songs/1995/mod/j/jazztime.zip 69 ** XX: It's Jazztime by Sector
/songs/1995/mod/j/jerry-sh.zip 444 **** XX: Jerry-Shop by Dan,Norby
/songs/1995/mod/k/kickin_i.zip 182 **+ XX: Kickin It Playback by Mortimer
/songs/1995/mod/k/kresten_.zip 161 *** XX: Buddha Medly by DTS
/songs/1995/mod/l/live_for.zip 115 ** XX: Live Forever by Trapdoor
/songs/1995/mod/m/m-caviar.zip 141 ***+ XX: Compact Caviar by Mystical
/songs/1995/mod/m/manic_fi.zip 217 *+ XX: Manic Filters by Decybel
/songs/1995/mod/m/marching.zip 102 *+ XX: Marching Elefants by X-Cess
/songs/1995/mod/m/media-te.zip 231 **+ XX: Media Techno Popicus by Speedy
/songs/1995/mod/m/mellow_t.zip 225 ** XX: Mellow Technology by Klorathy
/songs/1995/mod/m/morning-.zip 126 ***+ XX: Morning by Dan Dryer
/songs/1995/mod/m/mountain.zip 404 *** XX: Mountain High by Tricktrax
/songs/1995/mod/m/mystics.zip 205 ** XX: Mystic by Speck
/songs/1995/mod/n/neat_com.zip 373 ** XX: Neat by Trickster
/songs/1995/mod/n/nowasyn.zip 220 *+ XX: Nowasyn by Nowawes
/songs/1995/mod/o/obsessio.zip 156 *** XX: Obsession by Zoomorph
/songs/1995/mod/o/omega.zip 196 ** XX: Omega by Smooth
/songs/1995/mod/o/out_of_g.zip 155 **+ XX: Out of Goa by Yogi
/songs/1995/mod/p/plutoniu.zip 146 *+ XX: Plutonium 239 by Tls
/songs/1995/mod/r/r0undab0.zip 87 ***+ XX: Roundabout by Boon
/songs/1995/mod/r/rave_tri.zip 196 * XX: Rave Trip by X-et
/songs/1995/mod/r/rocks.zip 226 *** XX: On the Rocks by Necros
/songs/1995/mod/s/saa_smuk.zip 227 *+ XX: Saa Smukt er Havet by Kim
/songs/1995/mod/s/sassy_as.zip 210 *+ XX: Sassy Assline by Muttley
/songs/1995/mod/s/screwdri.zip 148 *+ XX: Screwdriver Disaster by Coma
/songs/1995/mod/s/shake_yo.zip 108 *** XX: Shake Body by C.Cool,Avocado
/songs/1995/mod/s/should_t.zip 172 * XX: Should Turn to B by Tarmslyng
/songs/1995/mod/s/smooth_a.zip 247 **+ XX: Smooth Attack by Pman
/songs/1995/mod/s/sorry.zip 82 ** XX: Sorry to Party by Dixan
/songs/1995/mod/s/space_fi.zip 115 **+ XX: Space Fish in Sig T3 by Pixie
/songs/1995/mod/s/spacelab.zip 259 ** XX: Spacelab 9 by Shane
/songs/1995/mod/s/spiral_m.zip 333 **+ XX: Spiral Mechanism by Shout
/songs/1995/mod/s/suddenin.zip 334 ** XX: Sudden Inspiration by Hille
/songs/1995/mod/s/sw-wart.zip 211 ***+ XX: Wart by Damac,Swallow
/songs/1995/mod/s/syndrome.zip 226 *** XX: Syndrome by POW
/songs/1995/mod/s/syntacti.zip 149 *** XX: Syntactic Sugar by Mittlag
/songs/1995/mod/t/the_fire.zip 115 ** XX: The Fire Bird by Notman
/songs/1995/other/the_madd.zip 65 [n/a] XX: MADDog in Acid World by Lasse
/songs/1995/mod/t/the_milk.zip 205 ** XX: The Milkman by Weezer
/songs/1995/mod/t/the_over.zip 268 ***+ XX: The Overture 2 by Front 6
/songs/1995/mod/t/theatric.zip 170 ** XX: Theatrical by Deck
/songs/1995/other/theparty.zip 478 [n/a] XX: The Party by Gunni
/songs/1995/mod/t/too_much.zip 275 *** XX: Too Much by Marc
/songs/1995/mod/t/totalecl.zip 531 *** XX: Total-Eclipse by Zany (check)
/songs/1995/mod/t/trans-s.zip 111 **+ XX: Trance-Sax-Ual by Ktn
/songs/1995/mod/f/tvnet.zip 593 ***+ XX: TV Network by Cash
/songs/1995/mod/t/tzjim-sc.zip 64 ** XX: Tzjim Schack by Swaxi
/songs/1995/mod/v/vandpibe.zip 154 * XX: Vandpibe by Jeronimus
/songs/1995/mod/v/vatican.zip 12 *+ XX: Vatican Rag by Hubert
/songs/1995/mod/v/vermins-.zip 76 ** XX: Vermins Eat Dust by Dr.Strange
/songs/1995/mod/v/visionai.zip 395 *** XX: Visionaire by Bethoven
/songs/1995/mod/x/xact_ple.zip 207 *** XX: Xact Pleasure by NFC
/songs/1995/mod/z/zyr.zip 124 **+ XX: Zyrian by S. Koponen
=----------------------------------------------------------[Graphics:General]-=
Location /demos/graphics Size Rated Description
=-------------------------------- ---- ----- ---------------------------------=
/disks/1996/fredpack.zip 257 ***+ VGA Pack by Fred Beltran
/images/1996/b/b2p3_1.zip 16 *+ Billy Baygle by E.Megas
EXE 95 Graphics (EXE95:grfx:)
/images/1995/w/wrd_alie.zip 22 *** 03: Alie by Ward
/images/1995/e/eye_drkf.zip 29 **+ ??: Eye by ???
/images/1995/f/farao.zip 90 ***+ ??: Farao by ???
/images/1995/l/lany.zip 56 **+ ??: Lany by ???
/images/1995/m/magic.zip 48 ** ??: Magic by ???
/images/1995/s/sarkany.zip 101 [n/a] ??: Sarkany by ???
The Party 95 Graphics (TP95:grfx:)
/images/1995/s/spacetit.zip 170 ****+ 01: Space Tits by Danny
/images/1995/0-9/8climber.zip 132 **** 02: Climber by Rodney
/images/1995/a/animalre.zip 51 *** 06: Animal Reign by Made
/images/1995/s/silicon.zip 153 **+ 09: Silicon by Louie
/images/1995/s/smorrebr.zip 169 ** 13: Smorrebr by Facet
/images/1995/c/cutechri.zip 84 ***+ 14: Cute Christina by Dice
/images/1995/t/theevils.zip 120 **+ 18: The Evils by Spawn
/images/1995/e/eldar.zip 67 ** 21: Eldar by Hook
/images/1995/r/ratman.zip 76 ***+ 39: Ratman by Darkman
/images/1995/j/jansson.zip 17 ** 43: Gamla by Saffron
/images/1995/p/picturet.zip 79 **+ 46: Picture T by Bifrost
/images/1995/b/beyond_n.zip 138 *** 47: Beyond N by JCS
/images/1995/s/sn-nuke.zip 15 **+ 52: Nuclear Waste by Moebius
/images/1995/s/splitter.arj 64 ** 53: Splitter by Rad Ad
/images/1995/c/champagn.zip 63 ** 55: Champagne by Fiver
/images/1995/t/theraid.zip 41 **+ 74: The Raid by Damac
/images/1995/o/osiris.zip 68 + 89: Osiris by Balkis
/images/1995/a/assassin.zip 65 *+ ??: ??? by ???
/images/1995/o/ofdeath.zip 40 **+ ??: ??? by ???
/images/1995/s/spacefis.zip 40 **+ ??: Space Fist by Pixie
/images/1995/w/wildbgan.zip 202 *** ??: ??? by ???
=----------------------------------------------------[Miscellaneous:Reviewed]-=
Location /demos Size Rated Description
=-------------------------------- ---- ----- ---------------------------------=
/mags/1996/cheese1.zip 217 **+ Cheese #1 by TKB
=-[Articles]=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=---------------------------------------------------[Introduction]--[Snowman]-=
Hello all, and welcome to DemoNews issue 116.
Our little ftp.cdrom.com server is feeling better after a bout with a bad
mount. The /.11 drive (the Ada archive) went bad. Around the same time,
some sort of file integrity error was detected on the mount that housed
everyone's home directories. Many of us were without an outside world
mail-feed for about four days. Upon restart, the clock on the server was
set ahead about 2.5 years. This seemed to cause problems with the
listserver but everything appears to be working correctly now.
On an unrelated note, I am now the /pub/perl archive maintainer. My
responsibilities exist solely of checking up on a crontab mirroring job.
If only /pub/demos were that easy. :)
E. Megas wrote me and said that we should have some more "demo news" (i.e.
more news about the scene). I agree. Please send me some to print.
Our /pub/demos/code mirror opened up this week. See "File Information"
above for more details.
There will be some very big changes coming up in the way we catalog files.
We are totally redesigning from the ground up the way we handle file
descriptions and other attributes. For those of you who are old enough to
remember, we used to have an external .txt file for each .zip on the site
(kind of like a file_id.diz). This made things easy to move around (didn't
have to update 00index.txt files) but wasn't very friendly.
We then moved on to 00index.txt files, which made for somewhat easy
recursive subdirectory traversal in generating an ALLFILES.TXT. This was
fine for a while but for several reasons we have decided to go to a
MASTER.LST format, propagating all descriptions down through the directory
tree (rather than the other way around). If this doesn't make sense or
sounds boring, that's ok. You'll see benefits soon enough. :)
I have recently started playing a new game. It's called "Make a Demo CD".
The goals are to make the scene happy and earn money for your company. The
penalties are getting sued for copyright violations and loosing respect
with the scene. I'm just a newbie at this so I haven't progressed very
far. I will either have beaten this game or been disqualified by May 14th,
1996. If any of you know some cheat codes, I'd love to hear them. In about
three weeks I'll talk about the multi-player edition.
On a final note, we are a bit behind on getting DemoNews out. The "Top
Downloads" needs to be done weekly to provide any sort of stable statistics.
As a result, expect to see two more issues of this newsletter before next
monday.
Take care.
Snowman / Hornet - r3cgm@cdrom.com
=-------------------------------[Intro to 3D Graphics - Volume 02]--[Kiwidog]-=
_____Greetings
Welcome back everyone.
It's time for the second article in the 3D series, in which we cover
another basic element of a 3D system... something seen in nearly ever demo
for the past few years that involves vectors at all. Rotation. Whether it
be that nice texture-mapped stone from Valhalla's "Solstice", or just a
flat-shaded cube from a 4k intro, things rotate almost constantly. So it's
time to start performing some rotations on our own. :-)
Once again, there will be a supplement to this article, but this time there
will be no extra article text; everything should be in here. But the
supplement will have sample code, so you still should get it.
DN115_3D.ZIP. Just check in the same place on ftp.cdrom.com as the last
supplement...
I'm going to keep this article relatively short (along with the subsequent
ones)... after all, Snowman has more to put in DemoNews than my constant
rambling, and I can't keep sucking up all the space like this. ;)
Nonetheless, I hope you find this article useful, as we continue our drive
toward learning 3D graphics.
Ready? Well like it or not, here we go! :)
_____Section One - 2D Rotation
Before we can get more sophisticated 3D rotations going, we need to try it
in two dimensions first... because 3D rotations are just based on three 2D
rotations, but combined.
So how do we rotate something in 2D? How do we take any 2D point, give it
an angle to rotate by about the origin, and get it correctly to its new
position? Well this is where that Trig knowledge from the first article
comes into play.
Everything about rotation involves Trig. Sine and Cosine are very much
your friends here. And it's not that complicated, really... you can rotate
in one plane with only 4 multiplies (other optimizations come later as
well).
So how do we go about this? Well, let's take it piece by piece. First,
I'll assume the XY plane (the real one, where Y goes up) for this, as we
try to take a point and rotate it.
A lot of docs, when trying to explain rotation, will give you the simple
equations for it but give you no clue as to how those equations came about.
Several people have asked me, "Hey, if and when you ever do a 3D tutorial,
tell me how the heck you get those rotation equations, cuz I have no idea
where those came from and why they work."
Well, I can't quite tell you where they came from at first (like who
thought of them), but I can replicate the ideas here and show you what
makes sense to me. If it makes sense to you to, then I guess it worked.
:-)
Here's the idea...
Get out a piece of paper. No, don't worry, this isn't a quiz. ;)
On the paper, draw a pair of conventional XY coordinate axes, and then
lightly sketch a large circle on it. Make sure the circle is light; you
don't really need it for much except placing a couple points.
After you draw the circle, put a point at about, say, 30 degrees (assuming
0 degrees is to the right and the angles go counterclockwise). Then put
another point at about 70 degrees, in the same fashion. We're going to
pretend that the first point is our original point, and that we're trying
to rotate it to the second point, our destination... a rotation of 40
degrees about the origin. The actual accuracy of the points doesn't
matter; if you're a bit off, it's fine.
Now with each point, draw a triangle for that point. Each triangle's three
sides are the X axis, the the line from the origin to the point, and the
line from the point straight down to the X axis. What you should have now
are two right triangles in the upper right quadrant of your XY plane, one
being pretty upright (the destination point's), and the other a bit more
wide than tall.
Time for some labels... okay, for each triangle, label the line going from
the origin to the point as "R" (for radius). Since it's the same length
for both triangles, we use the same label. Now, on the first triangle (the
short, wide one), label the side along the X axis "X", for that length.
Likewise, label the line from the X axis up to the point as "Y" for that
height.
For the second triangle (the tall one, for the 70 degree point), label the
X length and Y height as "U" and "V", respectively, in a similar fashion.
Finally, we need two angles. In the angle between the X axis and the
first, lower R side (30 degrees), label it í (called Phi). Then label the
angle between the lower R and the higher R (the one at 70 degrees) as é
(called Theta).
There we go... we've got our drawing. :-) If my little walkthrough in
drawing this has confused you to no end, either try it again from the
beginning, or look in the supplement; I'll include a PCX in there of this
same diagram I'm describing.
Okay, so we have this drawing. Basically, what we know in the beginning is
that we have this initial point at an unknown angle (we know it's 30
degrees in this example, but normally, you won't know that for arbitrary
points), yet we know it has Cartesian coordinates (X,Y). What we want to
do is pump X and Y through an equation or two, along with the angle we want
to rotate by (which we labeled as Theta, and in this example is 40
degrees), and find out its new coordinates, called (U,V). So what
equations do we use? Let's find out...
There are several convenient identities in Trigonometry that you can find
in pretty much every math textbook with Trig in it.... one of those
identities is called the "Law of Sines", which goes like this...
Sin(à) Sin(á) Sin(â)
------ = ------ = ------
A B C
Where A, B, and C are the lengths of the sides of a triangle, and à, á, and
â are the angles _directly opposite_ those sides...
/|
/á|
C / |
/ |A
/ |
/ |
/à â|
--------
B
It doesn't have to be a right triangle; it works for every triangle there
is. Granted, for our purposes, we _will_ be using our right triangles, and
this will help us out.
Now if we use our first right triangle, the short one, and pretend that R
is our "C" of the triangle, by the fact that this is a right triangle, we
know that â is 90 degrees. And the Sine of 90 is 1, which gives us one
very nice piece of math meat.
We only need to use one other side of our Law of Sines formula in this
example, in this case, the A-à side. In our case, "A" is the same as Y,
and à is the same as í. So we have a little mini-formula,
Sin(90) Sin(í) 1 Sin(í)
------- = ------ which means --- = ------
R Y R Y
Then, if you multiply each side by Y, it moves the Y to the left side, so
Y
--- = Sin(í)
R
This should all make sense so far, I hope. If you're looking at the
diagram as you read this, it should clear things up a bit.
Okay, so we can see the relation between the angle í, and the sides Y and
R. Well since í is across from Y, shouldn't we be able to have the same
kind of relation for the other triangle, with V and R? The angle across
from V is just í and é added together, so shouldn't that work?
Sure does. :-)
V
--- = Sin(í+é)
R
Okay, time for another nifty Trig identity (BTW, if you don't have a math
book with all these identities in it, let me know... if enough people ask
for a listing, I'll type up a quick reference list with identity equations
that you can use. Just email to the address at the end, if you think you'd
like that :)
Anyway, another nice identity is that for any two angles à and á,
Sin(à+á) = Sin(à)*Cos(á) + Cos(à)*Sin(á)
So we sub that into our previous thing, and we have
V
--- = Sin(í)*Cos(é) + Cos(í)*Sin(é)
R
Multiply by R now, to get V (the destination point's X value that we've
been trying to find), and it's
V = R*Sin(í)*Cos(é) + R*Cos(í)*Sin(é)
Welp, last identity.... this one, taken from Polar coordinates. If you've
had algebra, you've used Polar coordinates before. Well if you remember
the way to convert a polar point to Cartesian (I doubt you do, so I'll
remind you... it's gonna take a while before you end up memorizing all
these darn formulas, trust me :) those conversions are
X = R*Cos(Theta) *** Don't confuse these with our R, X, or Y!
Y = R*Sin(Theta) They're just conversion equations ***
Well look at our V equation above... notice anything? We know Phi is an
angle in the triangle that deals only with X and Y, which we know (since
they're just your first point and all). So can we drop those R*Sin(í) and
R*Cos(í) parts and just sub in X and Y like you would do with Polar? You
betcha.....
V = Y*Cos(é) + X*Sin(é) *** FINAL V EQUATION!!! :) ***
That's all we need! Hooray! :) We know X and Y, since we started with
those. And we know é, since it's the number of degrees we want to rotate
by (in our example, 40 degrees). So if we use this equation, we get the V
value, which is the Y coordinate of the FINAL point. :)
Now we still need to get U (the final point's X coordinate). Luckily, the
series of equations is the same almost, except one identity is different. I
won't work out the whole thing again, you can do that if you want. But
here are the differences that you'll see. One, since we're doing the
horizontal element instead of vertical,
U
--- = Cos(í+é)
R
Now's Cosine's Sum of Angles formula is a little bit different than Sine's,
Cos(à+á) = Cos(à)*Cos(á) - Sin(à)*Sin(á)
which will end up giving us that subtraction instead of addition in the
end. If you keep working the equations the same as we did before, but with
this new identity, you get the U equation too! :)
U = X*Cos(é) - Y*Sin(é) *** FINAL U EQUATION!!! ***
Summing up those equations into nice, happy, 2D rotation form.....
NewX = (OldX*Cos(Theta)) - (OldY*Sin(Theta))
NewY = (OldY*Cos(Theta)) + (OldX*Sin(Theta))
And there we have it! Note that I made it very clear as to the difference
between the "Old" and "New" values. It's important that you do this, too.
You don't want to just use a value "X", for example.... because if you
calculate the "new" X and end up using that instead of the "old" X in the
second equation (for NewY), you don't get the right rotation.
IN ROTATION, USE ONLY THE OLD VALUES UNTIL ALL THE NEW ONES ARE FOUND!
Once you have the final new X and Y values, _THEN_ replace the old pair
with the new pair, and go on your way. Make sure to keep the values
separate until that time.
BTW... As you look back at how I derived these rotation formulas, don't
feel bad if you feel like you couldn't have derived them yourself...
especially if you're just beginning. I know I ran on these formulas
blindly for over a year before I ended up losing them and was forced to
recreate them again in this fashion. I couldn't have done it earlier. It
takes time, so if you feel like you're still in the dark... don't.
Eventually you'll get the hang of it all. :-)
Any more to 2D rotation? Nope, that's the whole of it. Before you try out
3D rotation (explained in the next section), test out the above principles
in some of your own code, by plotting a few pixels here and there and then
rotating them about the origin. It's not hard at all to turn the above
formulas (formulae?) into code. Also, if you need some help or are just
plain curious, I've got some example source (in both Pascal and C, just
like last time) in the supplement, demonstrating this stuff. Feel free to
check it out. :)
Okay, well, enough of this planar stuff.... on to 3D rotations! (And
relax, there's not much more; you've done the bulk of the work already....)
_____Section Two - 3D Rotation
So what do we need to turn our rotations into 3D rotations? Not much,
actually. There are many ways to do rotations in 3D, some simpler than
others. The simplest (and most common from what I've seen) way is to do it
by using three 2D rotations, one for each axis.
The 2D rotations we did in the last section are on the XY plane. But as
you think about the XY plane in terms of 3D, the rotation takes on another
meaning... it was also a rotation ABOUT the Z axis. Meaning that we have
the Z axis, and whatever Z values the points may have, they stay the same,
as we are rotating around that axis itself. The only values that change in
a rotation about any axis are the values of the two OTHER coordinates.
So a rotation about Z will affect X and Y, a rotation about X will affect Y
and Z, and a rotation about Y will affect Z and X. It's just one big
cycle...
So if we want to do a full all-axis 3D rotation, we just arrange three
back-to-back 2D rotations, one for each axis, like this...
NewY = (OldY*Cos(ThetaX)) - (OldZ*Sin(ThetaX)) ** X axis rotation **
NewZ = (OldZ*Cos(ThetaX)) + (OldY*Sin(ThetaX))
(Copy NewY and NewZ into OldY and OldZ)
NewZ = (OldZ*Cos(ThetaY)) - (OldX*Sin(ThetaY)) ** Y axis rotation **
NewX = (OldX*Cos(ThetaY)) + (OldZ*Sin(ThetaY))
(Copy NewZ and NewX into OldZ and OldX)
NewX = (OldX*Cos(ThetaZ)) - (OldY*Sin(ThetaZ)) ** Z axis rotation **
NewY = (OldY*Cos(ThetaZ)) + (OldX*Sin(ThetaZ))
(No copies needed, since we're done)
The reasons for mid-copies are like I said; for each axis rotation you need
to keep using the old values until both the new ones are done. But each
axis' rotation is independent of the other two... so after each pair, you
need to update all the values before going on to the next axis. You don't
want to use one axis' old values when going into rotating about another
axis; that would be bad.
Once you've done all three axes, you should have your new point, completely
rotated about each angle as you wish (ThetaX, ThetaY, and ThetaZ).
One important point... the order in which you do these axes DOES make a
difference. Rotating in an X-Y-Z sequence will not give you the same
results as rotating in a Z-X-Y sequence, etc. Now, for your engine at this
point, all you're probably concerned about is looks, i.e. that your object
is rotating and you can see it rotating. Since that's the case, it really
doesn't matter for the moment which order you do things in. It's the
appearance that counts. But later on, when you get into more complex
issues that involve more things than just a set of points, you'll want to
keep your rotation order consistent. I just use X-Y-Z because it's pretty
natural. :-)
I'm not going to get into optimizations of this rotation material until
another time, but I can give you a hint or two now... first, you'll notice
that right now it's at 12 multiplies for a full rotation (4 for each axis).
But it turns out you can reduce it to at least 9 multiplies, by
precalculating a few values at the beginning of each frame and getting a
final 3x3 matrix for the actual point rotations themselves (if you don't
know what I mean by matrix, don't worry about it at the moment; we'll get
into matrices later on). It's something to look into, if you're curious
and feel like tinkering with the math a bit.
Also, once again, this method of rotation is only one way to rotate. There
are other ways, sometimes involving other coordinate systems, that can be
more efficient on occasion as well. You'll discover those in time (and
probably in some of the later articles :) But for now, this I think is the
simplest way to begin... get these concepts down first, and drill them into
your brain. You'll know when to switch gears when the time comes.
Well, looks like the end of another article! I've got some sample source
in the supplement, as well as a PCX of that 2D rotation diagram, if you got
lost in all of this mess. :-) Take the time to look at the code, see how
it relates to the math used in here, and most importantly, DO SOME
EXPERIMENTATION ON YOUR OWN. This kinda stuff isn't learned by reading,
it's learned by doing.
Now go forth, plot some dots, get them spinning, and have fun! Keep
watching, though... 'cause it's only gonna get better. :-)
See you next time...
Kiwidog / Hornet , Terraformer - kiwidog@vt.edu
=----------------------------------[VGA Hardware Tricks, Part 4/6]--[Trixter]-=
_____Preface
Welcome to VGA Hardware Tricks, a six-part series written by
Trixter/Hornet. In this series, I'll be exploring ways you can push VGA
harder to achieve new effects. The emphasis of this series is twofold:
The techniques discussed will work on any *standard* VGA card. (No SVGA or
VESA video cards are necessary, but these techniques will work on those
cards as well.)
The techniques discussed require very little calculation, so they will work
on slower computers. (Some techniques, however, requires a lot of CPU
*attention*, which means that while the effects are happening, they can't
be disturbed by other calculations, etc. Good Assembler programmers might
be able to get around this, however.)
This series is for intermediate to advanced coders, so there are a couple
of prerequisites you should meet: Example code will be given in assembler
and Pascal, so familiarity with those languages will be helpful when
looking at the example code; also, a familiarity with Mode X (unchained
VGA) is required, as procedures like changing video resolutions will be
discussed.
This series covers six topics:
- Crossfading 16-color pictures
- Crossfading 256-color pictures
- More than 256 colors: 12-bit color
- More than 256 colors: 18-bit color (this article)
- Copper effects in text mode
- Displaying graphics in text mode
_____Introduction
Yes, you read that title right--we're going to display 18-bit color on a
piece of hardware only built for 8-bit color. Seem impossible?
Technically, it is. But using our old friend, persistence of vision, we
can fake it convincingly--and the best part is, it's not CPU intensive at
all, just a clever arrangement of pixels.
(Note: This technique has been so overused in 1995 that, initially, I
thought it would need no explanation; just some example code and that would
be it. However, there is inevitably someone, somewhere, that doesn't
really grasp how this works. So, I feel a full explanation is necessary.)
As I've written about many times before, our brain is a very lazy thing. So
lazy, in fact, that it tends to fill in information that our eyes don't
provide. This is called Persistence Of Vision. (If you need a more
detailed explanation of what that is, look at previous VGA Hardware Tricks
articles or visit your local library.) Persistence Of Vision has been used
in many places before computers even existed, like the concept of film and
television. It's television, in fact, that provides us with the example
we'll use to coax 18-bit (262,144) color out of out 8-bit (256) color video
card.
If you've ever gotten curious as to how your television or computer monitor
works, you might have gone right up to the screen and looked at it closely,
possibly with a magnifying glass. If you'd had, you'd see a small hexagonal
grid of red, green, and blue dots. They're arranged in groups of three,
like this:
X
X X
This arrangement is called a "triad". Each red, green, and blue dot in a
triad glow with a different intensity, producing one solid color. (Well,
it's not exactly a *solid* color, but the dots are so small and close
together that POV blends them into one color for us.) The entire screen is
made up of triads.
To produce 18-bit color, all we have to do is emulate a series of
triads--that is, put a red, green, and blue pixel next to each other and
alter the intensity of all three to blend into a single color. This
technique produces 18-bit color because the VGA hardware is capable of
producing 6-bit (64) intensities of red, green, and blue for any given
pixel. So, 6+6+6 = 18-bit color, or to look at it another way, 64 red
values * 64 blue values * 64 green values = 262,144 possible colors.
_____Implementing Triads
To emulate a triad, we're going to need to set up the palette first. VGA is
capable of 64 different intensities of red, green, and blue, so the palette
needs to have 64 reds, 64 greens, and 64 blues. Pseudocode for doing that
would probably look like this:
for loop:=0 to 63 do begin
set palette index "loop" to r=loop,g=0,b=0 <-- red entries
set palette index "loop+64" to r=0,g=loop,b=0 <-- green entries
set palette index "loop+128" to r=0,g=0,b=loop <-- blue entries
end;
This leaves 64 colors left over at the end of our palette (from 192 to
255), for anything we feel like doing.
Now we get to plot the three pixels of a triad. Since VGA lays out pixels
in a grid (as opposed to a "honeycomb" like an actual television screen),
we have to lay them out on a grid as well. The best way is in a line, like
this:
Key: R = red pixel, G = green pixel, B = blue pixel
0 1 2 3 4 5 6 7 8 9
0 R R R R R R R R R R
1 G G G G G G G G G G
2 B B B B B B B B B B
3 R R R R R R R R R R
4 G G G G G G G G G G
5 B B B B B B B B B B
etc. So, 18-bit color pixel "(0,0)" is really "red at (0,0)", "green at
(0,1)", and "blue at (0,2)".
_____Potential problems
It sounds easy, doesn't it? Just put a red, green, and blue pixel next to
each other and you've got one of those 262,144 colors. If you were to stop
reading this article right now and jump to the compiler, you'd probably run
into a problem as soon as you entered mode 13h: The pixels are big. *Way*
too big. In fact, you'd have to sit about four feet away from the screen
to ignore the fact that you're really looking at three pixels close
together instead of a new color. Not only that, but each "pixel" is made
up of three pixels arranged vertically, which is a really weird aspect
ratio (the effective resolution is 320x66). In order to fix these
problems, we've got to shrink the height of each pixel. But how can we
make the pixels smaller?
One solution that's tempting is to use a 640x480x256 VESA mode, or
something similar. That defeats the whole purpose of this, because then a
super-vga card would be required, and this series of articles is dedicated
to achieving new effects on *standard* hardware. (Yes, not *everyone* has
a super-vga card and monitor.) Besides, if you were going to limit your
audience to a VESA mode, you might as well go all the way and use an actual
24-bit color mode anyway. Finally, 640x480x256 is 300K of video memory per
page, which is too slow for animation (even on 486 machines).
The solution, as it has been in the past, is to use Mode X. Mode X, as you
recall, is a video mode created by unchaining the video RAM, so that you
can (amongst many other things) alter the display resolution. It is easy
to make a resolution of 320x400 (effectively 320x133) under Mode X, which
helps a little, and actually gives us 2 video pages to work with. This is
suitable for animation. If you need more pixels and something a little
more accurate, 320x480 (effectively 320x160) comes close to the standard
320x200 1:1.3 aspect ratio that VGA users are used to. Because it's 480
lines, it will work with all monitors.
Believe it or not, you can actually go higher than that, to 320x600
(effectively 320x200)! This mode was, to my knowledge, first used by Adam
Bergstrom; in fact, his code is the code in the vgahard4.zip package
described later in this article. Of course, this resolution is only
possible on monitors that can display 800x600, because it uses 600 screen
lines. It also uses 192k of the 256K of video ram we have access to, so
that makes it even more unsuitable for animation. However, it's best for
displaying static pictures; I used it for Hornet's NAID Party report
(hrn-nrpt.zip on ftp.cdrom.com) to display "320x200" 24-bit color pictures
(I shifted left (SHL) each RGB component down two bits before plotting to
the screen).
_____Code
Code that achieves this effect is available on ftp.cdrom.com in the
directory /pub/demos/hornet/demonews/vgahard in the file vgahard4.zip. This
article is stored there as well. To compile the code directly, you'll need
Turbo Pascal 7.0 or later. (The code can be compiled on earlier compilers
as well, but some slight modification might be necessary.)
_____Notes
This method is extremely useful for animation, since there's no palette
switching or page flipping required, unlike some other methods. It lends
itself so well to this that it has become a "fad" effect for practically
every demo after X14 / Orange first used it on the PC. The 18-bit color
effect is sometimes called "Orange's 262144 color mode" as a result.
Another demo that uses this is Just / Legend Design. (In fact, the entire
demo is in that mode.)
Ambience and Luminati by Tran claim 21-bit color; they achieve this by
using two video pages and flipping between them rapidly, using two flipping
pixels in one location to blend into a "third" pixel, similar to the 12-bit
color technique covered in VGA Hardware Tricks #3. Once again, POV at
work. ;) In order to achieve this, however, Tran has to reprogram the VGA
registers, increasing the refresh rate of the screen so that it flips pages
at nearly double it's normal rate, at 100Hz (100 times a second), giving an
effect screen refresh rate of 50Hz. This mode is not completely compatible
with all monitors, so I have not decided to cover it in this series.
Captain Hook has written up a short article on it, however, so I expect
you'll learn how to do it from him shortly.
_____Next Time
I'm not *quite* done with color, if you can believe that. Next time, I'll
show you how to display 400 different colors at the same time--in *text
mode*. :) If you're familiar with the "copper" chip inside every Amiga
computer, you'll know what I'm talking about. Have fun experimenting until
then!
Trixter / Hornet - trixter@ftp.cdrom.com
=-[Subscribing]-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
_____How to subscribe to DemoNews
Mail to : listserver@unseen.aztec.co.za
Body : subscribe demuan-list [first_name] [last_name]
The listserver will send DemoNews to your e-mail's return address.
_____Back Issues
Older issues of DemoNews can be located under /demos/hornet/demonews.
Newly released issues of DemoNews are posted to /demos/incoming/news.
=-[Closing]-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
For questions and comments, you can contact us at r3cgm@cdrom.com
Your mail will be forwarded to the appropriate individual.
...........................................................End.of.DemoNews.116.