pouët.net

4ster by Checkpoint [web]

;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;                                                              1st October 2003
; Checkpoint:  "4STER"
;
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
; a 4K-intro for: ATARI 1040ST, 1MB, 8MHz Motorola 68000
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
; YOU MAY SPREAD/DISTRIBUTE THIS ARCHIVE/PROGRAMS AS LONG AS YOU KEEP THE
; ARCHIVE AS IT CAN BE FOUND AT http://checkpoint.atari.org
; YOU ARE ESPECIALLY ASKED --NOT-- TO REMOVE ANY FILES.
; THANK YOU!
;
; **-- DISCLAIMER -----------**
;   NO WARRANTIES FOR ANYTHING.
;   DON'T BOTHER.
; **-------- DISCLAIMER --**
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
                ORG $00001000
                OUTPUT '1000.PRG'
                OPT D-
; now let's cut the crap... and re-enter.
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;                                                              1st October 2003
; Checkpoint:  "4STER"
;
;------------------------------------------------------------------------------
; a 4K-intro for: ATARI 1040ST, 1MB, 8MHz Motorola 68000
;------------------------------------------------------------------------------
;
; ...files...
; party\4ster__p.prg   ... compo-party-version
; 4ster.prg            ... release version
; 4ster_co.prg         ... release version with Cache-Off (if present)
; 4ster.txt            ... some information
;------------------------------------------------------------------------------
;
; This 4K-tro took part in the 4K-competition at
; "Error In Line 2003" - party.
; 1st place.
; But not released.
; Until now.
;
;
; It may run fine on Atari Falcon, I just wasted even more bytes by setting
; up a timer running at ~50Hz - just to make sure that the music will sound
; ok on any screen-frequency.
; The "timing" (is there any?) might differ if you run it on a machine with
; cache & a processor unlike the 68000, 8Mhz.
;
; If you have problems on your machine (F030/TT?/CT?) try "4ster_co.prg",
; where the cache is being turned off. "4ster_co.prg" also runs on a non-cache
; machine. (we use some very little smc-stuff..)
;
; You have to start it in a ST-compatible mode (lo/mid) anyway.
; And... it doesn't work in monochrome mode.
;
;------------------------------------------------------------------------------
;
; CREDITS
; ~~~~~~~
;
; Coding:       Defjam
; Music:        505     ... his very first tune he "tracked" in DC.B style  :)
; Music-Player: Defjam
; Graphics:     mOdmate ... the 64x64 girl-picture in the polar-coord-dister
;                           comes from the "Undercover Magazine" issue 12
;                           loader-picture - what a 16 colors masterpiece!
;                           (converted to 64x64x8bpp luminance by Defjam)
;
;               Atari   ... the 8x8 systemfont
;
;
; Packer:       Packice by Axe/Superior      THANK YOU!
;
;               Packed using the cross-platform version of Packice made
;               by Lars Brinkhoff / No Crew ( http://www.nocrew.org )
;               using NEW_ALGORITHM - which packs some bytes better than the
;               "standard" Packice packer.   THANK YOU!
;
;               The unpacker has been size-shortened/stripped by Defjam.
;
;
; Additional "THANK YOU"'s for suggestions/influence:
; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;
;  MR-NI!/Tos-Crew - for the sqrt routine, I got from you years ago.
;                    sorry.. but ARJ didn't make it to be the packer used here.
;                    ;)
;
;  amycoders - for the inspiration how to generate a sin-table in a few bytes
;
;  Mr.Fourier(rip)                 ...without him - dct? jpg? mpg? mp3?
;                                                   perlin-noise? fft?
;
;  The Independent JPEG Group      for the work in signal transformation &
;                                  quantization/compression
;
;  INT-E - although your suggestions for storing the Huffman-tree instead the
;          Huffman-codes isn't implemented in this version..
;          maybe the next time....  or better: arithmetic encoding?  We'll see.
;
;
;  Markus Fritze & Soeren Hellwig - for TurboAss & Bugaboo.
;                                   The best assembler & debugger on Earth!!
;                                   (http://www.markus-fritze.de)
;
;
;
; EXCUSES & POSING
; ~~~~~~~~~~~~~~~~
;
; This 4k-tro has been done mainly for size-aspects, the effects run
; awfully slow.  I hope you like it a bit anyway.
; The program could have been done even shorter ... and slower.
;
; The 4k-tro consist of:
; - loading screen
; - motion-blur like text-displayer (also used for "transitions")
; - bump-mapper
; - huge offset tunnel
; - fieldlines
; - face-distorter
; - z-rot-zoomer (very ugly)
; - YM2149 Music!
;
; The polar-coordinates (r,alpha) are shared by the tunnel,fldlines,face-dister.
; An iterative delta-algorithm is used to generate the arcsin.
;
;
; Some technical notes coming up..
;
; Music
; ~~~~~
;
; Music-Player: 272 bytes
; Music-Data:   396 bytes
;               ----------  668 bytes for the music in total.
;
; The music-data isn't too much optimized, some bytes could have been squeezed
; by interleaving some bytes and/or re-arranging the data-structure.
; Anyway, it's my first really used music-player - and a lot of "THANK YOU!"
; have to go to 505 for making that cool music in TurboAssembler.
;
;
; Graphic-compression
; ~~~~~~~~~~~~~~~~~~~
;
; In the party-version, the girl-picture is 50x50, 3bit - plain stored,
; no additional compression scheme applied.
;
; Now.. after some months of research, the picture is 64x64, 8bit.
; How is it done?
;
; Well - Discrete Cosine Transformation.
; It's just the same technique JPEG uses.
;
; The 64x64x8 picture is DCT-encoded using a constant quantization, because
; storing an dequantization-table would take additional space.
; The quantization factor is 48 - and the produced output is by all means far
; better than an equally sized jpg-file.
; More notes; DC - 6bit stored, AC - 5bit stored & RLE+Huffman encoded
;
; Size aspects:
; RLE+Huffman-decoder+inverse DCT code: 284 bytes.
; (40 bytes more and the inverse DCT would run ~15 seconds faster)
;
; DCT components (after RLE+Huffman encoding): 662 bytes.
;
; That makes 946 bytes in total for the 64x64 picture.
; A compression-ratio of ~4.33
;
; The shortest (and ugliest) effect is the Z-Rot-Zoomer..
; ~130 bytes now.  (without "stone-like" texture generator.)
;
;
;
;
;
; Ok.. I'm tired now and this text is yet bigger than the .prg
;
;
;
; ohh... GREETINGS!
;        ~~~~~~~~~~
; DHS! Escape! tSCc! Sector One! Dune! Tos-Crew!
; Reservoir Gods!  (esp. Damo - thanks for the mail & keep on going strong!)
; MJJ-Prod! (esp. C-Rem & Gloky !)
; FUN! / Lineout! (esp. Havoc & Earx)
; Cream! (esp. Ultra - although he's too lazy... ;(
; Evolution! Paranoia! Foundation Two! St Knights!
; Equinox!, Oxygene!, Mystic-Bytes! No Crew! Holocaust!
; TEX, The Replicants, TCB, ULM, Synergy ... and all the other rotten dead ones.
;
; Special individuals-greets:
;
; ST Survivor! Moondog! R.Karsmakers!
; The STEEM (steem.atari.org) authors, Anthony & Russel Hayward!
;
;
;
; Some non-Atari people -
; Doomsday, TBL (the loading bar is inspired from Stash/Jizz ... :)
; Industry, Byterapers, Reflex, Smash-Designs, Haujobb, Oxyron
;
;
;
;
;
;------------------------------------------------------------------------------
;does that really interest you?
;music consumed while finishing: various psids,mods,sndhs/yms,
;various stuff from mp3.de,candyman & the other Olaf's alter-ego,access_denied,
;chris huelsbeck,vnv nation,welle-erdball,various gabber/hardcore,beethoven,
;vivaldi:"the four seasons", atari-ACE-softsynth tracks,kb,haujobb,rozalla,
;and other noise-sources...  that were the one i remember of.
;films interrupting coding: David Lynch, Oliver Lammert, Madeleine Dewald,
; Daniel Graebner, Tom Schreiber, Francois Ozon, Michael Moore ...
; ... and some others.
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
; Feedback is essential:
;                         http://checkpoint.atari.org
;                         defjam_cp@gmx.net
; Auf Wiedersehen.
;-------------------------------------------------------------------------------
;                                            (w)`1999-2001,2002,2003  defjam'cpt
;-------------------------------------------------------------------------------
                DC.L $4AFC4E71
                END