DOSvzpHI,xCYpNh,@)n&A2C8 N @*h">(&0<@2<N)@ @2< 't QA|dv./\p7A<oBH?AaV0-GGaC`@&( 0siA? .YZC (& @`@ (B44 22w2Ѓ <0 t%Nj , ^\@0N@hXH2OSdARW W@ >^^@At # `!'#Q ApRށDf d>H2 0dC0&F `?QHDQCh] `2? ~T@E࿁A! O#0@E?'p@`E.R@@f `;H0; nss38g< ࿸< @sQ`/`2)202e\008 :9@X 4YT NZJD8B #0CS??|Z> pe K>1 4ix:T4 0P}H@(8D x $&<84\H0H4 mfA5(OmSg02` u_UaPPwH< @xA` B8 ΁[ ?fq9yg@scv ہM`Pb~5E@"?8}ŋCBd 5 `2 L#)4" bT2 dfG0903@ a4 4 <"xAGcJ0(21Af4B0ͨ$P 0vd{)y #U<~HHgu4pS0# y?' P1nc02f) Ɨ{xA |pKh' 4q Y@N?` ~@(? ‚y< G#xٓL8a tw 0ZOډ?68YDsyr6Pu`agP@IB s>7<~CZo Ga0/aGz@BN# `ߎ‰`I2 '4"e&qЃ3 ~@ AwX1 v A001@3`(/{X98gh#p4sp `!@)@bO_ 9@`gg3=Pc B q+uzx?߀5Jx @L Bx'@ VD '_Q  ̎` w}@$8R" @.@(@J,' `JA"PS(2`c%}`+` PE$`>0(P3`a`#fAS lt X h#(R0 *x S? @&@?#fVcV0h %] /{bg7sΘ_C<`0Ops'0wD | (3 (A-_ @HC 7 !0o@|Lj~  1 a@ A =01 4f!8 *pw? 'Ua<0 7Cz n@ %Q PQ a0h5rc G@ 1  - @A#8hE<  S`,0? p%`+ 00@_p>@_`8@_(tHp20`b˸A{,> q0v9|@~1 { 7Ö`c$G^%hp'4@;@P3e i2E . ` ہO@|` ` `$ @;%ay& @y?}0/ @m\\9<?=pCt9Ma@G}wB,A_f)K,?Nm?O???o?W;*s( X/{,0O 5/ @+$B~> ^qy@A0s~V_! `x`"i8`BL e /2?|:bx g~ ñm?o` oXxi i /X{NmL1@bAnzna? 8ppsu`7 B@ƓT1`cH@AP_ | q<'5~07 L B A=@L4 `Ax C87S\0b_+$BcCY `Ar@CY9p? Dԧ )00t`> !/ +X 5?=6.'la_ a?^K> > 1Q^&*@I!8LGC/P- $g:lS#@|2 '#;  ࿸GwqJcß< 9H EAT0>&`+/!6xN8 (9p @Q ` `3 a0ppph?@`07Ifd@sa w2sa0NZ;6`8vqo000 wBTNJ@PG@#`,p `.)@L'`~ <@;vp q1o1vDBT(O6p8R.P@㟏yF! %pC0GӲAN8P8#7 M! 00 ar S'8wcr&& aЁh0A f `<0`a@` A`EP#|iEP @h@Kp䣁 p? D` x'J$y0d89!&0P# ~ /9= SJ{C L,ϐ[k|vƀS`%Aol-t '9 hC”J{ aPqBˀ$ #@dAg7 >@49֏? ~Bc_`??R@Oʀ? =g(q|CAUwdG $ ~@AAK (?00@? AgA= p0#| D0'@Q:@A<~;^Sڥ!3IJCm(X?9 w?vObH_v02Q~>9 t?ZRe0K_xp0F矃' | Ё7O``1B7 #hOf ~C < 8A@׀H ` Dvo  FOy?7@vI Q_w_wA9͟A`3tA@h~$U8Qd@Dbt〈sp"8p;>cx~@0 h<01ibqzp&{*x 4`@̅%#|w߀;$ ,$_a! 5e@: &./~TLo>n0KG X[S#OC<0`nF'1+g s0RP% P фhA0rV e4tPP0>T[*/ AH@A j> 9`|(PBhy`  /~ `fӲ@N733x3@. 17> aA703XAG`-0(0@H<`_?rţP<7~"@ 9 !7!@(8$0_K9>i|pc5.N w 88.V  )cA>C(x;Pc@#T8Lˠ0P6YHKyN"bZQ]0\' E0!04FA@`<+`М$@ dX , |#x d @nH? mP2HBaqNp`2  h;   e~ ǐ@`AC@, <\ѐ KW$ Z7L(q@| &t9],0  % ~\`)_h?Xd!9p2 - `~)z7 P Oj&> &0`@.C(0z   % .D( ?,d ?x? $V  P0$40p ,\p)|` 0?` ?L 0 oLL C >P0*@A:2`h řqvDp@t`9 Op<0X=iY6eg?Ari(Q?:nL Dx@!.JA@d?9O:2 RiL Lr1ay ouD0i '0;|G b@`@`4Cd01Dyq@C! &2P>6ς qs=~=^ll01` B/|8T8'b6@AC@H 48{la*CV.`0+7汀?P8 rbO?M'7Ϝ /8OP8?%Bľ"'0 * + $1tA G 2+(Np1 g0c9y 擞y}r, 0 y>:69 p0` fJH`4B(>pO $x@ 4 4# +4QBi?4H( 'IbdLS=3@țd$x[Csx `C|@!( dfx Ӂ?||.Qpb @H (O% 7+ $RD RF4 #`F$ iA@#!@"'A^Wh<ЃQ 3||tb? +hO &`aH*| ?<݁@G;x(7P86dvA`0 p1}-0P~p*`P3@8%/ NPq@|`x <&Bp  P?t\ )eDlMHD@  lB@8! (Ŷpvx` s1^`abY gm @ G( ң C`ˆ@ O??7̈́S  "8G @?` "Ps~ r ~ט?`f9P3u0 @]*tP0@~3k@qpZ@! +P3)Q*¨|;`P`w°$`Z7 6Yj@F < D=8ABoq!c$C00Gv@} ap0>&YmR<`d1 fRѸb`<!MAVpA0Ct T \`aԠ$ `9 #(.@ 3'RW9/~2Pb0 PҀ9q- ~ >)0'F3:!8w"HGE2~tP (`?@`p `0?  LPp4' * !D_HS @ >pAX3  Dds" >B`6 m  A>d(@nH?(ҁ@>BAxF)H\8_\Lb<痁8/D_lrA p3A0 #0p   #cp`so&?18Ðsț"p *!mPu)(:(DXHTG$&<?<Qpa6 @g$n`r Lpa ሑpaSQ`O ,xNM pL0C<Ō>$IYjF<a ܅ޅSSŎŞFF6QDjBGRRZJEf:`փd HB4HBJCj=NuwP2qm`UࣆosC wCo@8rc-AR%͎mqao${.g~I6ak@?|Hvp֛\[Le 3E#2s_8VCo"([:8, IOr2ސ(NBado՚1RR#`n u1/Azϯ^uHonr ^ǽ+@beb5KbQ!)%+f:XkhGݖ*z⸄Y̾kpm juMFވ(}Q<]΀5ೃ;5!dQ6_ҳ(Fh\dZN&QȓֳeXǿVgoPEO(\[zM6…ȄHgٹz$_w2޸~Zlsտv)`o莨 I#R<fQ>%A(:1^={D5"'k x>BuU+ލ9xȓ (W;lq;XĠؚ|3, ,}Yڹ^ô+~̖Et3S4Ɂ0 eϜ6GK0J\waF AA Ѳbfk,veATEU?P%n23Y<u@f9~ZNzd2Ukx |tРItJܮQ=p,ب+OfhI:Zu7k 2Y 7V2 whry~X.;z?ez?Mznޤ.M/@&#Ў':sXiWy|EqI#hf $/\4#v>Bc]`%C* @~]6F&gB5L.\aT\I뿵"TjaUk tQ. 4[.}e Xgbxg Los MW|9!"&):PNm2, \A-9.bgьN]*zV㉫[4'e} ,ñ2"9V|y:iq%v-a5NMah9pB䲲(qOon<K$ҫGO7G,g 9#K>-]V2 ^{&` 2P撂є?`}=:߱+hm? s9 ǞRkC-1#)3ˁ6㿑lWUFRgFȑcHq=#UGԸ4-a9`l&Ѡ"n&͆/80FȕCwD&t:2Y_.]&ێz%@ѷȾRQ1=$f_U!IW%:\>O]&"'jJi2+sݚHa?+yM̐ZiD*gN79zc3lE@>ϸnȸO =LbhoMWp/(ۅ;ױ+;=n L; rJtTn59Xtoڌzx8`*)jb1."TrXʫ!~)aj\~Gg$(}Z)S~k256FmdM'4Й{kܖ/Kh ))G11Z/1jjlb@+n0549 "]~aHt qPrctE_?6w_ڨ PLFt˖@ؚD~g/&q?t0qEx8o#ڸؘΪ-j*-s 7Pz C\ѕ덒=ѧl$R4/AP(.BWbSTNt ,'8l7JZk",ܼ 0/1Pr'[/)(YcD>&biR? )yj #u`btFD3R4SmĎaDD=ty6n; ?'$j>1DW(5o(yبuj/#"=Hߥ'e'"c o2w?ɮ' :tSFE/Dc;i$ jR!D3K@jzؗπ{n @X  i@Qɗ n6-GC&*FhPJ߱NUVtz~եNNYrYڮNjqLj` l R8qnpJ"i&MfaB/u4(FC гE?c [kbjII [@3G;lvx/3C ǐ:fsN uO HCQ=,WP%pl /щ cRU?,|gXF"sP0xa p\|IK6@ρD"r=1KpLe.?};sDA39z0iԸ`=jOl3L$(T5sPZӛޥa=zP1Ƞ5T"&m6Θ5+VYR̴/[+DQ@ \0+B*)t]q}Wr6i#OuS{-qb)MoH<8HgA59FXEL Vq4Y8VYl*z$_UwO[V;o1ѠfԒ]_QMbkp77c-7/ ( fYOnpSˆ8/$R=i2/f6yCN:"5=H93>LɬLڲVWfpmUaS J LßYeE___/_________/_| \_\ \_| \_ ________//_/_* * yop |________/ \_______/|________/ * * * * * * OLDSCHOOL SKID ROW CRACKTRO - 4K EDITION * * ORIGINAL CODE (1991): DAN/ANARCHY * * * * 4k CODE (2005): STINGRAY/[S]CARAB^SCOOPEX * * * * LIKE SUMMER AS A CHILD * * THE DAYS SEEMED TO LAST FOREVER AND A WHILE * * H㟷4brvxs{lBO Amiga DemosBO=TDOSlk4BUT THEN THE WEATHER TURNED TO GREY * * AND THE STORM WASHED IT ALL AWAY... * * * * DEDICATED TO JACQUI (THE BITCH!) * * * * _ _ _ __ ____ _______ _______ ____ __ _ _ _ * * / SKID ROW CRACKTRO 4k \ * * * ****************************************************************************** ; 21-Feb-2k5: - angefangen als 'abfallprodukt vom Lotus 96k game :) ; ry~B\cps|B\sptu\u =T EDIT-BACKUPuence{t -*^df0:demo vwnwB\boot.txtpvH Where Amiga Memories Live On __ _____ (__) / _ \ _____ __ _________ / /_\ \ / \| |/ ___\__ \ / | \ Y Y \ / /_/ > __ \_ \____|__ /__|_| /__\___ (____ / xw_devspyz7zB\clsry|5 ?g $<Lv`$<Mv,yC@pN*@N"N"MNbpNudos.library Parameters are not required   / \| |/ ___\__ \ | | \| | _/ / | \ Y Y \ / /_/ > __ \_| ` \ | \ \____|__ /__|_| /__\___ (____ /_______ /______ / \/ \/ /_____/ \/ \/ \/ http{KtB\ JTp|}u> };B\startup-sequences|;ydf0:c/border on df0:c/climaxx -c -t df0:boot.txt df0:demo df0:demo  ;fontsp~7tB\borderr~HzHHI&TNJg,$! !N. n (gB" & @I<(X/BrQ >D@ Ư!RC":c4@g=3sUE_(ր`J`J7BkpS ЃaZ,o>܄U!H mp9Q>h@9*k7QGB G dmTQ ҫۮ[$E[5:!{a+Pă[Oҥ`*t4e$#> OJo"=@a1ܩ)7-$Ĥ@Z*1'ػ;/=I8 B[_`F<Brp;(uT{Ch9>6- F9X@#~lTNa"2S|w1 yd Qd=qh3a'1p@4Ґ $a*GB*1 p0p$0pI(40k 49@oyfMg\Al1 FF43xL3< <&͆o iac%yΆ>rJFOfLf90Mh1@ɋ|  IcE9BNo8ÙeQΆmq 'N8 SԹ[)tļ2@n䅽FxI)ɨ!Ii|%|HDR)Hћl:A9AІ@ZJ p_B\htyper ,`mmNUH720|&P~Cp$,KN$@ J gprAQA"M$v,JN+@JfN|"$N&`N+@ <rHA,KNT+@Jf,JN|"$N&`nr @1|!| m+A+A+HgR mHHHg@phfp+@`pnfp+@`(HH+@A"C$ ,JNF`zJgzJgSJjAn~+H`zA+m~+HJfd"m Y+H+I gPB"$-,JNJg*N|.ptЀf~+mAB"C$ NF`~Jf"m i"(,JN m+@"$<N+@-N|."-NJf m+HA"C$ NF` -g8Jf2"$<N+@JfN|.+mA"C$ NF`Z -g"N "- Ja.Jg "-,JN"-,JNBJf"-NJgN|.ptЀf~"-,JN` -g"A$,JNF`Jgm "t,JN& 0f~`~ -g",JN -g",JN"m,KNN"-,JN"J,KNb`0|"P ipz!@ LLN]Nudos.libraryFROM/A/M,TO/K,OPT/K,HEX/S,NUMBER/S$VER: type 37.2 (21.1.91) Option '%lc' ignored Type can't do both HEX and NUMBER 2No files to type TYPE can't open %s 0123456789ABCDEF%04lx: %s %5ld %sNUH72.,&Hp*+@",KN+@Rg2JfJf p m,zN8A`\9fNuRaC  gfBA"$<A",zhN+@g"tvN"-tvN+@ g,r,xN:+@g"-$-&- ,z N mB0"-,z NJg(Aca maAXa"m - ,xN.Nu m"h. iX (g"|0) 2) i,zN,zNNuJxgNur < ,xN: @(@C0< QNAp0RB RԈJfR RԈ 0fC,xNhr&Ё @"PrA 3@H@2B97A!xNuH瀀AHpR(T( V(X( Q9L3 Nsgraphics.library"<,xxN(N:JfNu  gSNu zg" -ff ( gJ(f NupNu"$vRJf,z0NAC!IC!I,xN+@pN+@C#mx;|"m) fJ iCg>EL" C8#A #AE#Jr#AE| #@(NAN+m -N -Nu1mCLIMax v1.0 0m33mby RIFF RAFF of UNITED FORCES 0mUsage: CLIMax [options] Options... -f Fullsize, -b Borderless, -c Clear window, -a Add21k, -t Type text, -s CLI Stars -n No Fastmem, -w Wait for mouse 0 p ptj borderrۤxsystem-configurationx p9y||x|ni`@ " ,EpsonX[CBM_MPS-1250]P BB\ >devspv; \/ \/ /_____/ \/DB https://AmigaDB.net --- YOUR PORTAL TO AMIGA HISTORY --- b[uB\ jsystem-configurationxlX~ gleich beim 1. versuch auf 3.520 bytes! :) ; paar minuten spter und noch nicht wirklich hardcore ; optimized :) 3.204 bytes ; 22-Feb-2k5: - size optimizing (immer noch nicht hardcore! :D): 2.976 bytes ; - color tables kleiner, init optimized: 2.928 bytes ; - copperlist wird jetzt (vllig unoptimiert :D) ; generiert: 2.824 bytes ; - copperlist wird jetzt halb generiert und halb kopiert :) ; dabei mal wieder auf 'nen geilen bug reingefallen, ; copperlisten drfen l'nicht an ungeraden adressen liegen! :) ; spart 'nen paar bytes (wenn man an den cruncher ; einstellungen dreht): mit MINI RSW 92 genau 2.812 bytes ; 23-Feb-2k5: - zur abwechslung endlich mal wieder auf 'nem REAL AMiGA ; gecoded! :) (jetzt, wo ich endlich mein A4k keyboard ; gefixed hab, macht es auch wieder spass!:D) ; - starfield optimized, sterne werden jetzt mit bfset ; gemalt, ausserdem wird die farbe jetzt via jumptable ; geholt, nix mehr mit cmp.w #bla etc ;lB - ausserdem wird nicht mehr der gesamte starfield screen ; gelscht, sondern nur noch die positionen, an denen ; ein stern gemalt wurde, ist logischerweise deutlich ; schneller, was sich gerade auf meinem A4k mit seinem ; EXTREM langsamen RAM bemerkbar macht! ; 24-Feb-2k5: - jetzt liegt nicht mehr der gesamte code im chip ram, ; sondern nur noch die sachen, die da auch wirklich ; hingehren, chip ram wird zu beginn allokiert. sind ; ein paar bytes mehr im codelr, aber ein extremer speed ; boost! deswegen gibts jetzt auch wieder einen 1 pixel ; sinus scroller! :) ; - jumptable im starfield optimiert, 4 bytes gespart :) ; - sintab fr scroller ist raus, wird jetzt berechnet ; 22-Mar-2k5 - gepacktes/konvertiertes module + speziell angepassten ; replayer eingebaut, packed size: 4.044 bytes und ; das ist noch ohne samples.... das wird verdammt eng! ; ; - jetzt mit 'totally raped' samples: 4.456 bytes ; noch 360 bytes drber, slYbhit! ; ; - font gekrzt, 4.344, wir nhern uns :) ; ; - text auf minimum reduziert und die 2 130 byte ; samples gepackt, ja, jetzt muss man auch schon ; chip samples packen! :) 4.080 bytes! HABE FERTIG! :D ; ; - fade shit im init part mit 'bfextu' - 'bfins' ; optimized, hat sogar auf anhieb geklappt (nachdem ; ich mir erstmal in asm-one die opcodes holen musste, ; weil asm-pro mit bitfields nicht wirklich umgehen ; kann...) 4.064 bytes ; ; - mini rsw 94 md 1050 l Aoa1 119 = 4096 bytes! FINAL = 1 REL_CHIP MACRO move.l CHIPDATA_CR(pc),\2 lea (\1-COPPERLIST_CR)(\2),\2 ENDM ALLOCSIZE_CR = (44*240*2*3)+(44*90*2)+(44*140*2)+(48*16)+10000 INTENASET = %1100000000000000 ; ab-------cdefg-- ; a: SET/CLR Bit ; b: Master Bit ; c: Blitter Int ; d: Vert Blank Int ; e: Copper Int ; f: IO Ports/Timers ; g: Software Int DMASET = %1000001111100000 ; a----bcdefghi--j ; a: SET/CLR Bit ; b: Blitter Priority ; c: Enable DMA ; d: Bit Plane DMA ; e: Cl :'opper DMA ; f: Blitter DMA ; g: Sprite DMA ; h: Disk DMA ; i..j: Audio Channel 0-3 *************************************************** *** CLOSE DOWN SYSTEM - INIT PROGRAM *** *************************************************** START move.l $4.w,a6 moveq #(ALLOCSIZE_CR+65536)>>16,d0 swap d0 move.l #$10002,d1 ; MEMF_CHIP|MEMF_CLEAR jsr -684(a6) ; AllocVec() lea CHIPMEM_CR(pc),a0 move.l d0,(a0)+ beq.w ERROR move.l d0,a1 ; so we can do add.w ; addq.w #4,a1 ; must be..l Av dunno why... ; half an hour later, bug found, ; caused by 2 much size optimizing :) lea SIZETAB_CR(pc),a2 moveq #7-1,d7 .loop1 move.l a1,(a0)+ add.w (a2)+,a1 dbf d7,.loop1 move.l a1,(a0)+ ; copy samples+copperlist to chip ram move.w #CHIPDATASIZE-1,d7 lea CHIP_START(pc),a0 .copy move.b (a0)+,(a1)+ dbf d7,.copy move.l $9c(a6),a6 ; gfx base move.l a6,-(a7) ; gfx base move.l 34(a6),-(a7) ; Get active viewport sub.l a1,a1 ; Find current task bsr doVIEW l W move.l $26(a6),-(a7) ; Store old CL 1 *** Store Custom Regs *** lea $dff000,a6 ; base address move.w $10(a6),-(a7) ; Store old ADKCON move.w $1C(a6),-(a7) ; Store old INTENA move.w $02(a6),-(a7) ; Store old DMA bsr.w DISABLE RNDSEED move.w #INTENASET!$C000,$9A(a6); set Interrupts+ BIT 14/15 move.w #DMASET!$8200,$96(a6) ; set DMA + BIT 09/15 ****** Place Init routines here ****** bsr INIT_CR bsr MAKE_MODULE **************************************************l ZNl]* *** VBI ACTION *** *************************************************** LOOP bsr.w WaitRaster ; move.w #$000,$dff180 bsr mt4k_music lea PIC1_SF(pc),a0 movem.l (a0),d0/d1 exg.l d0,d1 movem.l d0/d1,(a0) move.l (a0),d2 ;move.l CHIPDATA_CR(pc),a0 ;add.w #SAMPLESIZE+(p1_SF+2-COPPERLIST_CR),a0 REL_CHIP p1_SF+2,a0 lea 44*240.w,a1 bsr SETPLANES2 lea PIC1_SC(pc),a0 movem.l (a0),d0/d1 exg.l d0,d1 movem.l d0/d1,(a0) bsr SETPLANES_SC bsr WAITBLIT clr.w $66(a6) move.l=bl #$01000000,$40(a6) ; Bcon0+1 move.l PIC2_SC(pc),$54(a6) move.w #136<<6|22,$58(a6) bsr COPPERBARS_CB bsr MESSAGEBOX_MB bsr STARFIELD_SF bsr SCROLLER_SC ; move.w #$34a,$dff180 btst #6,$bfe001 bne.b LOOP *************************************************** *** Restore Sytem Parameter etc. *** *************************************************** END bsr mt4k_end bsr.b DISABLE addq.w #1,d0 ; d0: $8000 move.w (a7)+,d1 ; DMA move.w (a7)+,d2 ; INTENA move.w (a7)+,d3 l&_; AKDCON or.w d0,d1 ; SET/CLR-Bit to 1 or.w d0,d2 ; SET/CLR-Bit to 1 or.w d0,d3 ; SET/CLR-Bit to 1 move.l (a7)+,$80(a6) ; Restore old CL 1 ;move.w d0,$88(a6) ; start copper1 move.w d2,$9A(a6) ; Restore INTENA move.w d1,$96(a6) ; Restore DMAcon move.w d3,$9E(a6) ; Restore ADKcon move.l (a7)+,a1 ; restore old viewport move.l (a7)+,a6 ; GFXbase bsr.b doView move.l $4.w,a6 move.l CHIPMEM_CR(pc),a1 jsr -690(a6) ; FreeVec() ERROR moveq #0,d0 ; Return to CLI lD rts DISABLE bsr.b WaitRaster move.w #$7fff,d0 move.w d0,$9A(a6) ; Clear all INT bits move.w d0,$96(a6) ; Clear all DMA channels move.w d0,$9C(a6) ; Clear all INT requests rts doVIEW jsr -222(a6) ; LoadView() jsr -270(a6) ; WaitTOF jmp -270(a6) ; - WaitRaster .loop move.l $4(a6),d0 and.l #$1ff00,d0 cmp.l #302<<8,d0 bne.b .loop rts ; a0: plane ptr ; a1: plane size ; d2: screen SETPLANES2 moveq #2-1,d7 ; a0: plane ptr ; a1: plane size ; d2: screen ; d7: # ol4f planes-1 SETPLANES .loop move.w d2,4(a0) swap d2 move.w d2,(a0) swap d2 addq.w #8,a0 add.l a1,d2 dbf d7,.loop rts SETPLANES_SC ; move.l CHIPDATA_CR(pc),a0 ; add.w #SAMPLESIZE+(p1_SC+2-COPPERLIST_CR),a0 REL_CHIP p1_SC+2,a0 move.w d0,4(a0) swap d0 move.w d0,(a0) rts SIZETAB_CR dc.w 44*240*2 ; PIC1_SF dc.w 44*240*2 ; PIC2_SF dc.w 44*240*2 ; PIC3_SF dc.w 44*90*2 ; PIC_MB dc.w 44*140 ; PIC1_SC dc.w 44*140 ; PIC2_SC dc.w 48*16 ; PIC3_SC *********lV q********************************** *** PRECALC *** ******************************************* Init_CR *** INIT PLANES *** move.l CHIPDATA_CR(pc),a5 ;add.w #SAMPLESIZE,a5 ; ptr to copperlist move.l PIC_MB(pc),d2 lea (p1_MB+2-COPPERLIST_CR)(a5),a0 lea 44*90.w,a1 bsr.b SETPLANES2 lea (CRD_SPRITE-COPPERLIST_CR)(a5),a0 move.l a0,d2 lea (spr1_CR+2-COPPERLIST_CR)(a5),a0 lea 36.w,a1 moveq #6-1,d7 bsr.b SETPLANES sub.l a1,a1 ; set empty sprite bsr.b SETPLANES2 l4cMAKE_FONT16 moveq #59-1,d7 ; # of chars lea FONT8(pc),a0 ; source lea FONT16(pc),a1 ; dest ; enlarge char to 16x16 .cloop moveq #8-1,d3 .loopY move.b (a0)+,d1 moveq #7-1,d5 moveq #0,d4 .fline move.b d1,d2 ; current char line and.b #%10000000,d2 lsl.b #1,d2 bcc.b .nobit addq.b #%11,d4 .nobit lsl.b #1,d1 lsl.w #2,d4 dbf d5,.fline move.w d4,(a1)+ move.w d4,(a1)+ dbf d3,.loopY dbf d7,.cloop INIT_SF lea PERSTAB_SF(pc),a0 move.w #-4100,d0 move.w #4096-1,d1 .loop mlxWove.w #700,d2 move.w d2,d4 muls.w #$8000,d2 sub.w d0,d4 divs.w d4,d2 move.w d2,(a0)+ addq.w #1,d0 dbf d1,.loop bsr .MAKESTARS .SINSIZE = 1024 ; number of entries .SINAMP = 12 ; amplitude .SINPI = 205887 ; Pi^1 = (3.14159)^1*65536 .SINPI2 = 646814 ; Pi^2 = (3.14159)^2*65536 ;lea SINTAB_SF(pc),a0 move.l #2*.SINPI*.SINAMP/.SINSIZE,d1 ; t = 2 * pi / Size move.l #((4*.SINPI2/.SINSIZE)<<16)/.SINSIZE,d2 ; r = t * t move.w #.SINSIZE-1,d7 ; number of values bsl 4r.w .calcsin .SINSIZE_SC = 256 .SINAMP_SC = 120 move.l #2*.SINPI*.SINAMP_SC/.SINSIZE_SC,d1 ; t = 2 * pi / Size move.l #((4*.SINPI2/.SINSIZE_SC)<<16)/.SINSIZE_SC,d2 ; r = t * t move.w #.SINSIZE_SC-1,d7 ; number of values bsr.w .calcsin lea SINTAB_SC(pc),a0 move.w #.SINSIZE_SC-1,d7 .fix move.w (a0),d0 add.w #.SINAMP_SC,d0 lsr.w #1,d0 mulu.w #44,d0 move.w d0,2*.SINSIZE_SC(a0) move.w d0,2*.SINSIZE_SC*2(a0) move.w d0,(a0)+ dbf d7,.fix lea (BUF1_CB-COPPERLIST_CR)(a5),lXKa0 lea (BUF2_CB-COPPERLIST_CR)(a5),a2 lea COLTAB_CB(pc),a1 moveq #55-1,d0 move.w #$180,d1 .cloop move.w d1,(a0)+ move.w (a1)+,(a0)+ move.w d1,(a2)+ move.w (a1)+,(a2)+ dbf d0,.cloop lea .colors(pc),a1 lea (BUF_MB-COPPERLIST_CR)(a5),a0 move.w #$3801,d0 moveq #10-1,d7 .lines move.w (a1),d5 ; farbe in der mitte lea .TAB+4*2(pc),a2 move.l a2,a3 move.w #$222,d6 moveq #4-1,d1 .l1 move.w d5,-(a2) sub.w d6,d5 dbf d1,.l1 move.w (a1)+,d5 ; farbe in der mitte moveq #3-1l;gG{,d1 .l2 sub.w d6,d5 move.w d5,(a3)+ dbf d1,.l2 ; lea .TAB(pc),a2 moveq #8-1,d6 .inner bsr.w .store ; move.w d0,(a0)+ ; move.w #$FFFE,(a0)+ move.w #$190,d4 moveq #4,d5 .maketab move.w d4,(a0)+ addq.w #2,d4 move.w (a2),(a0)+ subq.w #1,d5 bne.b .maketab move.w (a2)+,d3 moveq #20,d5 ; bit offset bsr.b .fadeshit bsr.b .fadeshit bsr.b .fadeshit ; bfextu d3{24:4},d1 ; bfextu d3{28:4},d2 ; bfextu d3{20:4},d3 ; move.w d3,d1 ; move.w d2,d2 ; and.w #$f00,d3 ; and.w #$0fl>v0,d1 ; and.w #$00f,d2 ; add.w #$600,d3 ; add.w #$060,d1 ; addq.w #$006,d2 ; cmp.w #$f00,d3 ; blt.b .rok ; move.w #$f00,d3 ;.rok cmp.w #$0f0,d1 ; blt.b .grok ; move.w #$0f0,d1 ;.grok cmp.w #$00f,d2 ; blt.b .blok ; moveq #$00f,d2 ;.blok or.w d2,d1 ; or.w d1,d3 moveq #4-1,d5 .maketab2 move.w d4,(a0)+ addq.w #2,d4 move.w d3,(a0)+ dbf d5,.maketab2 add.w #$100,d0 dbf d6,.inner dbf d7,.lines lea COLTAB_SC(pc),a1 lea (BUF_SC-COPPERLIST_CR)(a5),a0 moveq #68/2-1,d7 move.w #l.$91DF,d0 .cloop3 move.w (a1)+,d2 bsr.b .copyit dbf d7,.cloop3 moveq #68/2-1,d7 .cloop4 move.w -(a1),d2 bsr.b .copyit dbf d7,.cloop4 ; move.w #$C00,$106(a6) ; move.l CHIPDATA_CR(pc),a0 ; add.w #SAMPLESIZE,a0 move.l a5,$80(a6) move.w d0,$88(a6) .fadeshit dc.l $e9c31944 ;bfextu d3{d5:4},d1 (asm-pro bug!) addq.w #6,d1 cmp.w #15,d1 blt.b .nclip moveq #15,d1 .nclip dc.l $efc31944 ;bfins d1,d3{d5:4} (asm-pro bug!) addq.w #4,d5 rts ; d1.w: t (2*pi/size) ; d2.w: r<<16 (t*t) lG ; d7.w: size .calcsin moveq #0,d0 ; s = 0 .sloop move.l d0,(a0) ; store HIGH word addq.l #2,a0 move.l d2,d3 muls.l d0,d4:d3 ; d4 = r * s sub.l d4,d1 ; t = t - r * s add.l d1,d0 ; s = s + t dbf d7,.sloop rts ;lea STARTAB_SF(pc),a0 .MAKESTARS move.w #181-1,d7 .loop2 bsr.b .RND1 bsr.b .RND1 move.w #500,d0 bsr.b .RANDOM lsl.w #4,d0 move.w d0,(a0)+ dbf d7,.loop2 rts .RND1 moveq #64,d0 bsr.b .RANDOM sub.w #64/2,d0 muls.w #64/2,d0 move.w d0,(a0)+ rtl>Ǽs .copyit move.w #$188,d1 moveq #4-1,d3 .inner2 move.w d1,(a0)+ move.w d2,(a0)+ addq.w #2,d1 dbf d3,.inner2 bsr.b .store add.w #$200,d0 rts .store move.w d0,(a0)+ move.w #$fffe,(a0)+ rts .TAB ds.w 8 .colors dc.w $e66 dc.w $ea6 dc.w $ee6 dc.w $AE6 dc.w $6e6 dc.w $6ee dc.w $6ae dc.w $ABC 8ac ;$66e dc.w $fed ff ;$A8B ;a6e dc.w $CBA ;$e6e .RANDOM lea RNDSEED(pc),a1 ;.SEED(pc),a1 move.w d0,d5 move.w d5,d4 subq.w #1,d4 move.l (a1),d0 .loopR add.l d0,d0 bhi.bl .skipR eor.l #$1D872B41,d0 .skipR lsr.w #1,d4 bne.b .loopR move.l d0,(a1) tst.w d5 bne.b .okR swap d0 bra.b .skip2R .okR mulu d5,d0 .skip2R clr.w d0 swap d0 rts ;.SEED dc.l $091174 ******************************************* *** STARFIELD *** ******************************************* STARFIELD_SF lea SINTAB_SF(pc),a0 move.w #2048-1,d3 lea xpos_SF(pc),a1 movem.w (a1),d0-d2 addq.w #3*2,(a1) and.w d3,(a1)+ addq.w #2*2,(a1) and.w d3,(a1)+ addq.w #1*2,(a1)l  and.w d3,(a1) ; movem.w xpos_SF(pc),d0-d2 move.w (a0,d0.w),d0 add.w d0,d0 move.w (a0,d1.w),d1 add.w d1,d1 move.w (a0,d2.w),d2 asl.w #3,d2 lea STARTAB_SF-SINTAB_SF(a0),a0 move.w #181-1,d7 .nosub move.w #$400,d6 move.w #$1FFF,d5 move.w #$7FE,d4 add.w d6,d0 add.w d6,d1 .loop add.w d0,(a0) and.w d4,(a0) sub.w d6,(a0)+ add.w d1,(a0) and.w d4,(a0) sub.w d6,(a0)+ add.w d2,(a0) and.w d5,(a0)+ dbf d7,.loop CLEAR_SF lea TAB_SF(pc),a3 move.w #181-1,d7 move.l PIC2_SF(plE+-c),a0 lea 44*240(a0),a1 .cls move.l (a3)+,d0 bfclr (a0){d0:1} bfclr (a1){d0:1} dbf d7,.cls STARS_SF lea STARTAB_SF(pc),a0 lea PERSTAB_SF-STARTAB_SF(a0),a5 lea TAB_SF(pc),a3 moveq #8+3,d5 move.w #44*8,d6 move.w #181-1,d7 .nosub move.w #44*8/2,d4 moveq #240/2,d3 move.l PIC1_SF(pc),a1 lea 44*240(a1),a2 .loop move.w (a0)+,d0 move.w (a0)+,d1 move.w (a0)+,d2 muls.w (a5,d2.w),d0 muls.w (a5,d2.w),d1 swap d0 swap d1 add.w d4,d0 add.w d3,d1 cmp.w #240-1,d1 bhi.b .clip l; cmp.w d6,d0 bcc.b .clip mulu.w d6,d1 add.w d0,d1 move.l d1,(a3)+ lsr.w d5,d2 jsr .TAB(pc,d2.w*2) .clip dbf d7,.loop rts .TAB bra.b .s3 bra.b .s2 bra.b .s1 bra.b .s1 .s2 bfset (a1){d1:1} .s3 bfset (a2){d1:1} rts .s1 bfset (a1){d1:1} rts ******************************************* *** MESSAGE BOX *** ******************************************* MESSAGEBOX_MB lea DELAY_MB(pc),a2 not.b (a2)+ beq.b .exit addq.w #1,(a2) cmp.w #40*11,(a2) bgt.b .exit move.w (a2)l '1+,d0 addq.w #1,(a2) cmp.w #44,(a2) bne.s .ok clr.w (a2) add.w #44*8,2(a2) .ok move.w (a2)+,d2 add.w (a2),d2 moveq #0,d1 lea TEXT_MB(pc),a0 move.b (a0,d0.w),d1 move.l PIC_MB(pc),a2 lea -2(a2),a3 bsr.b .write move.b -1(a0,d0.w),d1 move.l PIC_MB(pc),a2 lea 44*90-1(a2),a2 ;subq.w #1,a2 bsr.b .write moveq #"b",d1 move.l a3,a2 .write sub.b #"A",d1 lea FONT8(pc),a1 lea (a1,d1.w*8),a1 lea 44(a2,d2.w),a2 moveq #7-1,d7 .loop move.b (a1)+,(a2) lea 44(a2),a2 dbf d7,.lol!f7op .exit rts ******************************************* *** LEGENDARY COPPER BARS :) *** ******************************************* ; I wonder who invented 'em first... Corsair? COPPERBARS_CB move.l CHIPDATA_CR(pc),a3 lea (BUF1_CB-COPPERLIST_CR)(a3),a0 lea .COUNT1(pc),a2 moveq #96,d1 addq.w #2,(a2) cmp.w (a2),d1 bgt.b .ok clr.w (a2) .ok bsr.b .copy ;move.l CHIPDATA_CR(pc),a0 lea (BUF2_CB-COPPERLIST_CR)(a3),a0 addq.w #2,a2 ;lea .COUNT2(pc),a2 subq.w #2,(a2) bgt.bl"J( .ok2 move.w d1,(a2) .ok2 .copy lea COLTAB_CB(pc),a1 add.w (a2),a1 moveq #55-1,d0 .loop2 addq.w #2,a0 move.w (a1)+,(a0)+ dbf d0,.loop2 rts .COUNT1 DC.W 0 .COUNT2 DC.W 96 ******************************************* *** SINE SCROLLER *** ******************************************* SCROLLER_SC lea DELAY_SC(pc),a0 tst.b (a0) beq.b .nostop subq.b #1,(a0) bra.b .scroll .nostop lea COUNT_SC(pc),a5 addq.b #1,(a5) and.b #7,(a5)+ bne.b .scroll .go moveq #0,d0 move.w (a5l#-ͬ),d1 addq.w #1,(a5) lea TEXT_SC(pc),a0 move.b (a0,d1.w),d0 bne.b .noend moveq #"b",d0 clr.w (a5) .noend cmp.b #"s",d0 bne.b .npause addq.w #1,(a5) move.b #50*5,DELAY_SC-TEXT_SC(a0) bra.b .scroll .npause sub.b #"A",d0 lsl.w #5,d0 lea FONT16(pc),a1 add.w d0,a1 move.l PIC3_SC(pc),a2 lea 48-2(a2),a2 moveq #16-1,d7 .loop move.w (a1)+,(a2) lea 48(a2),a2 dbf d7,.loop .scroll move.l PIC3_SC(pc),a0 lea 16*48-2(a0),a0 ; source bsr WAITBLIT move.l a0,$50(a6) ; a poinl$l]>ter move.l a0,$54(a6) ; d pointer clr.l $64(a6) ; move.w #0,$64(a6) ; a mod ; move.w #0,$66(a6) ; d mod tst.b DELAY_SC(pc) beq.b .doit move.l #$09f00002,$40(a6) bra.b .stop .doit move.l #$29f00002,$40(a6) ; bltcon0+1 .stop move.l #-1,$44(a6) ; masks move.w #(15<<6)|(48/2),$58(a6) ; start .sine bsr.b WAITBLIT moveq #48-2,d0 move.w d0,$64(a6) ; a mod subq.w #4,d0 move.w d0,$62(a6) ; b mod move.w d0,$66(a6) ; d mod move.l #$0dfc0000,$40(a6) ; bltcon 0+1 l%F ;lea $44(a6),a0 ; mask ;lea $4c(a6),a1 ; b ptr ;lea $50(a6),a2 ; a+d ptr ;lea $58(a6),a3 ; size ;lea $02(a6),a4 lea SINTAB_SC+512*2(pc),a5 add.w SINCOUNT_SC(pc),a5 ;move.l a6,d1 ;lea $4c(a6),a6 ;move.w #$8400,$96-$4c(a6) ; "blitter nasty" on move.l PIC3_SC(pc),d0 ; source move.l PIC2_SC(pc),d4 move.w #14<<6|1,d2 ; size ; due to size optimizing, this one is in NO way speed optimized! .1pixel move.w #44/2*16-1,d7 move.w #%1000000000000000,d6 .sloop move.l&Tl d4,a1 add.w -(a5),a1 bsr.b WAITBLIT move.l d0,$50(a6) move.l a1,$54(a6) ; a+d pointer $50 move.l a1,$4c(a6) ; b ptr $4c move.w d6,$44(a6) ; mask $44 move.w d2,$58(a6) ; size $58 lsr.w #1,d6 bne.b .no16 move.w #%1000000000000000,d6 addq.l #2,d0 addq.l #2,d4 .no16 dbf d7,.sloop .endit ;move.l d1,a6 ;move.w #$0400,$96(a6) ; "blitter nasty" off lea SINCOUNT_SC(pc),a0 addq.w #2*2,(a0) and.w #512-1,(a0) WAITBLIT .wb btst #6,$2(a6) bne.b .wb rts TEXl'6T_SC dc.b "bbbbbbb[bSCARABb[bbbbbbs" dc.b "b`bTHEbLEADINGbFORCEb`b" dc.b "bbbbbbbbbbbbbb" dc.b "ISbBACKbONbYOURbSCREENbWITHeb" dc.b "BLASTbFROMbTHEbPASTb`bAbdKbCRACKTRObDEVELOPEDb" dc.b "BYbMASTAHbSTINGAHbHIMSELFaaabbbbb" dc.b "TUNEbBYbd`MAT_CONVERTEDcRAPEDbTObDEATHbBYbSTINGRAYaaabbbb" dc.b "GREETSbTObALLbATbBREAKPOINTbbbbbb[TRAPbTHEbWRAP[bbbbbs" dc.b "bbbbbbb" dc.b 0,0 TEXT_MB dc.b "bbbbbbbbbbbbbbbbb[bSCARABb[bbbbbbbbbbbbbbbbb" dc.b "bbbbbbbbbbbbbbbbbbPRESENTSbbbbbbbbbl(;sbbbbbbbbb" dc.b "bbbbbbbbbANOTHERbLIGHTSPEEDbRELEASEbbbbbbbbb" dc.b "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" dc.b "bbbbbBLASTbFROMbTHEbPASTb`bdKbCRACKTRObbbbbb" dc.b "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" dc.b "bbbbbDONEbBYbSCARABbPRODUCTIONSbINb\OO]bbbbb" dc.b "bbbALLbCODING_GRAPHICSbcbSOUNDbBYbSTINGRAYbb" dc.b "bbREMEMBERbTHEbROOTSbANDbENJOYbTHISbLITTLEbb" dc.b "bbbbPIECEbOFbNOSTALGIAaaabSEEbYOUbLATER^bbbb" DELAY_MB DC.b 0 TEXTCOUNT_MB DC.w 2 xpos_MB l)ۼi@DC.W 2 ypos_MB DC.W 44*4 cnop 0,2 ******************************************************************************* * * * MODULE GENERATOR+REPLAYER * * * ******************************************************************************* MAKE_MODULE REL_CHIP SAM1_4MAT,a0 ;lea SAM1_4MAT,a0 lea SAMOFFSETS_4MAT(pc),a1 lea SAMPLE_TAB+4(pc),a2 moveq #7-1,d7 .loop0 move.l a0,(a2) addq.w #8,a2 add.w (a1)+,a0 dbf d7,.loop0 lea MOD_4K(pc),l*.a0 ; dest. lea NOTES(pc),a1 lea SAMPLES(pc),a2 moveq #0,d0 ; start track moveq #43-1,d7 .loop bsr.b .getTrk movem.l (a1)+,d1/d2 bsr.b .depack ; decrunch 1st 32 entries exg.l d1,d2 bsr.b .depack ; decrunch 2nd 32 entries .next addq.w #1,d0 dbf d7,.loop ; arpeggio tracks generieren moveq #1,d2 lsl.w #8,d2 ; cmd lea .ARP_TAB(pc),a2 moveq #5-1,d6 .arploop move.b (a2)+,d0 moveq #1*4,d3 moveq #64-1,d7 bsr.b .doCMD dbf d6,.arploop ; portamento move.w #$0203,l+Yd2 bsr.b .doport addq.b #9-3,d2 move.w d2,6016+2(a0) ; volume bra.b mt4k_init .doport moveq #0,d0 moveq #2*4,d3 moveq #32-1,d7 ; d0.w: track number ; d2.w: command+parameter ; d3.w: edit skip .doCMD bsr.b .getTrk ;moveq #64,d7 .cmdloop move.w d2,2(a3) add.w d3,a3 dbf d7,.cmdloop rts ; d1.l: mask ; a1.l: notes ; a2.l: samples ; a3.l: dest .depack moveq #32-1,d6 .dloop lsr.l #1,d1 bcc.b .nonote move.b (a1)+,(a3) move.b (a2)+,1(a3) .nonote addq.w #4,a3 dbf d6,.dll,oop rts .getTrk move.l d0,d1 lsl.l #8,d1 lea (a0,d1.l),a3 rts .ARP_TAB dc.b 7,10,15,19,22,0 ; arpeggio tracks *************************************************** *** REPLAYER *** *************************************************** F_ARP = 1 ; effect 0 = arpeggio F_PUP = 2 ; effect 1 = portamento up ;F_PDO = 3 ; effect 2 = portamento down ;F_POR = 4 ; effect 3 = tone portamento ;F_VIB = 5 ; effect 4 = vibrato ;F_VSL = 6 ; effect A = volume slide F_VCH = 3 ; effecl-no note) ; byte 2: effect command ; byte 3: effect parameter mt4k_playvoice moveq #0,d0 move.b (a2)+,d0 ; track number to play lsl.w #8,d0 ; multiply with track size ;lea TRACK_DATA,a1 ;lea MOD_FINAL,a1 lea MOD_4K(pc),a1 add.w d0,a1 add.w mt4k_pattpos(pc),a1 tst.l (a3) bne.b .skip1 bsr.w mt4k_periodnop .skip1 move.l (a1),(a3) ; get sample move.w (a3),d0 ; note+sample holenl4 beq.b .nosam ; instrument was zero ext.w d0 ; set sample parameters lea SAMPLE_TAB(pc),a0 subq.w #1,d0 movem.l (a0,d0.w*8),d0/a0 ; d0: replen|repeat, a0: sample ptr move.l a0,n_start(a3) lea (a0,d0.w*2),a0 ; loopstart = sample + 2*repeat move.l a0,n_loopstart(a3) move.w d0,d1 ; d1.w: repeat swap d0 ; d0.w: replen move.w d0,n_replen(a3) add.w d1,d0 move.w d0,n_length(a3) ; sample length = replen+repeat moveq #64,d0 bsr.b .setVol ; get note and handle effectsl5ATN .nosam move.l (a3),d0 ; upper byte: effect ; lower byte: effect parameter bfextu (a3){6:2},d1 ; octave beq.b .nonote bfextu (a3){2:4},d2 ; note mulu.w #12*2,d1 ; offset fr period tab lea mt4k_periodtab-12*2(pc),a1 add.w d1,a1 move.w (a1,d2.w*2),d2 ; d2: period value for this note .mt_setperiod move.w d2,n_period(a3) ; $10 move.w d3,$96(a6) ; n_dmabit $14 move.l a5,a0 move.l n_start(a3),(a0)+ ; AUDxLC move.w n_length(a3),(a0)+ ; AUDxLEN move.w d2,(a0) l6d ; AUDxPER lea mt4k_dmacon(pc),a1 or.w d3,(a1) ; effects if no note .nonote ror.w #8,d0 subq.b #F_VCH,d0 ; Cxx bne.b mt4k_periodnop lsr.w #8,d0 ;ext.w d0 .setVol move.b d0,n_volume(a3) mt4k_SetVol move.w d0,8(a5) ; AUDxVOL rts *** CMD 0xx - ARPEGGIO *** ; ndert pitch zwischen 2/3 noten ; parameter: bit 4-7: 1st halfnote add ; bit 0-3: 2nd halfnote add ; d0.w: parameter mt4k_arpeggio moveq #0,d1 move.b mt4k_counter(pc),d1 divu.w #3,d1 swap d1 tst.wl7Ņ d1 ; if zero -> base note beq.b mt4k_periodnop moveq #7,d0 subq.b #2,d1 beq.b .second moveq #4,d0 ;lsr.b #4,d0 ; 1st halfnote .second ;and.b d7,d0 lea mt4k_periodtab(pc),a0 move.w n_period(a3),d1 ; period for base note .search move.w (a0,d0.w*2),d2 ; get period to set cmp.w (a0)+,d1 blt.b .search .found bra.b mt4k_SetPer mt4k_checkefx move.l (a3),d1 ; effect+par move.w d1,d0 ext.w d0 ; d0.w: parameter lsr.w #8,d1 ; d1.w: effect command beq.b mt4k_periodnop l8Vry; no effect subq.b #1,d1 ; 0xx beq.b mt4k_arpeggio subq.b #1,d1 ; 1xx bne.b mt4k_periodnop *** CMD 1xx - PORTAMENTO UP *** ; d0.w: parameter (portamento speed) ; doesn't seem to work correctly... ; ; 21-Mar-2k5: it worked correctly all the time! yet the volume ; bug prevented it from working! fixed! :) ; lea n_period(a3),a1 sub.w d0,n_period(a3) ; move.w (a1),6(a5) mt4k_periodnop move.w n_period(a3),d2 mt4k_SetPer move.w d2,6(a5) ; set period mt4k_NoFX rts ;l9R{ 534, 472, 448 PRINTT PRINTT PRINTT "REPLAYER LENGTH:" PRINTV *-mt4k_init PRINTT ; mod.l.f.f-4k SAMOFFSETS_4MAT dc.w SAM2_4MAT-SAM1_4MAT dc.w SAM3_4MAT-SAM2_4MAT dc.w SAM4_4MAT-SAM3_4MAT dc.w SAM5_4MAT-SAM4_4MAT dc.w SAM6_4MAT-SAM5_4MAT dc.w SAM7_4MAT-SAM6_4MAT dc.w SAME_4MAT-SAM7_4MAT SAMPLE_TAB .SAMPLES .SAM1 dc.w 128/2 ; replen (loop length) dc.w 2/2 ; repeat (loop start) dc.l 0 .SAM2 dc.w 128/2 ; replen dc.w 2/2 ; repeat dc.l 0 .SAM3 dc.w 6/2 l:dԨ ; replen dc.w 50/2 ; repeat dc.l 0 .SAM4 dc.w 2/2 ; replen dc.w 52/2 ; repeat dc.l 0 .SAM5 dc.w 8/2 ; replen dc.w 44/2 ; repeat dc.l 0 .SAM6 dc.w 32/2 ; replen dc.w 2/2 ; repeat dc.l 0 .SAM7 dc.w 8/2 ; replen dc.w 2/2 ; repeat dc.l 0 PATTERN_TAB ; PATT REMARKS .PATT dc.b 00,01,02,03 ; 00 track 03 empty dc.b 04,01,02,05 ; 01 dc.b 06,07,02,08 ; 02 track 07 arpeggio 1 dc.b 09,10,11,12 ; 03 track 10 arpeggio 2 dc.b 13,10,11,12 ; 04 dc.b l;Ɍ;14,15,16,12 ; 05 track 15 arpeggio 3 dc.b 17,15,16,12 ; 06 dc.b 18,19,20,21 ; 07 track 19 arpeggio 4 dc.b 00,22,02,08 ; 08 track 22 arpeggio 5 dc.b 23,22,02,08 ; 09 dc.b 24,22,02,08 ; 10 dc.b 25,22,02,08 ; 11 dc.b 26,27,02,08 ; 12 track 02=track01+16 dc.b 28,29,02,08 ; 13 track 02=track01+16 dc.b 30,31,02,08 ; 14 track 02=track01+16 dc.b 32,33,02,08 ; 15 track 02=track01+16 dc.b 34,35,02,08 ; 16 track 35 arpeggio 6 dc.b 36,35,02,08 ; 17 dc.b 37,35,02,08 ; 1l<ʵ8 dc.b 38,35,02,08 ; 19 dc.b 39,40,41,42 ; 20 track 40 arpeggio 7 PATTERN_ORDER ; pattern order .ORDER ;dc.b 19,20 dc.b 00,01,02,03,02,04,05,06 dc.b 05,07,02,03,02,04,05,06 dc.b 05,07,08,09,10,11,12,13 dc.b 14,15,16,17,18,19,20 mt4k_adds dc.b 48,46,42,42,38,36,34,32,30,28,27,0 FONT8 ; DC.B $00,$00,$00,$00,$00,$00,$00,$00 ; spc ; DC.B $18,$18,$18,$18,$18,$00,$18,$00 ; ! ; DC.B $6C,$6C,$6C,$00,$00,$00,$00,$00 ; " ; DC.B $00,$6C,$FE,$6C,$6C,$FE,$6C,$00 ; # ; DC.B $18,$3l=.C,$66,$30,$0C,$66,$3C,$18 ; $ ; DC.B $00,$C6,$CC,$18,$30,$66,$C6,$00 ; % ; DC.B $00,$38,$6C,$38,$6E,$6C,$3A,$00 ; & ; DC.B $30,$30,$30,$00,$00,$00,$00,$00 ; ' ; DC.B $1C,$30,$30,$30,$30,$30,$1C,$00 ; ( ; DC.B $38,$0C,$0C,$0C,$0C,$0C,$38,$00 ; ) ; ;DC.B $00,$7C,$FE,$FE,$FE,$7C,$00,$00 ; * ; DC.B $08,$08,$7F,$3E,$1C,$36,$22,$00 ; * ; ; DC.B $00,$00,$18,$18,$7E,$18,$18,$00 ; + ; DC.B $00,$00,$00,$00,$00,$18,$30,$60 ; , ; DC.B $00,$00,$00,$00,$7E,$00,$00,$00 ; - ; DC.B $00,$00l>̤`,$00,$00,$00,$18,$18,$00 ; . ; DC.B $00,$06,$0C,$18,$30,$60,$C0,$00 ; / ; DC.B $7C,$C6,$C6,$E6,$F6,$F6,$7C,$00 ; 0 ; DC.B $0C,$0C,$0C,$1C,$3C,$3C,$3C,$00 ; 1 ; DC.B $7C,$06,$06,$7C,$E0,$E0,$FE,$00 ; 2 ; DC.B $7C,$06,$06,$1C,$0E,$0E,$FC,$00 ; 3 ; DC.B $C6,$C6,$C6,$7E,$0E,$0E,$0E,$00 ; 4 ; DC.B $FE,$C0,$FC,$0E,$0E,$0E,$FC,$00 ; 5 ; DC.B $7C,$C0,$FC,$CE,$CE,$CE,$7C,$00 ; 6 ; DC.B $FE,$06,$0C,$18,$38,$38,$38,$00 ; 7 ; DC.B $7C,$C6,$C6,$7C,$E6,$E6,$7C,$00 ; 8 ; DC.B $7C,$C6,$C6l?ͭ$,$7E,$0E,$0E,$7C,$00 ; 9 ; DC.B $00,$00,$30,$30,$00,$30,$30,$00 ; : ; DC.B $00,$00,$18,$18,$00,$18,$30,$60 ; ; ; DC.B $0C,$18,$30,$70,$38,$1C,$0E,$00 ; < ; DC.B $00,$00,$FE,$00,$FE,$00,$00,$00 ; = ; DC.B $30,$18,$0C,$0E,$1C,$38,$70,$00 ; > ; DC.B $7C,$C6,$06,$1C,$38,$00,$38,$00 ; ? ; DC.B $C0,$C0,$C0,$C0,$C0,$C0,$C0,$FF ; @ DC.B $7C,$C6,$C6,$FE,$E6,$E6,$E6,$00 ; A DC.B $FC,$C6,$C6,$FC,$E6,$E6,$FC,$00 ; B DC.B $7E,$C0,$C0,$E0,$F0,$F0,$7E,$00 ; C DC.B $FC,$C6,$C6,$E6,$l@s~F6,$F6,$FC,$00 ; D DC.B $7E,$C0,$C0,$FC,$E0,$E0,$7E,$00 ; E DC.B $7E,$C0,$C0,$F8,$E0,$F0,$F0,$00 ; F DC.B $7E,$C0,$C0,$EE,$F6,$F6,$7E,$00 ; G DC.B $C6,$C6,$C6,$FE,$E6,$E6,$E6,$00 ; H DC.B $18,$18,$18,$38,$78,$78,$78,$00 ; I DC.B $7E,$06,$06,$0E,$1E,$1E,$FC,$00 ; J DC.B $C6,$CC,$D8,$F8,$DC,$DE,$DE,$00 ; K DC.B $C0,$C0,$C0,$E0,$F0,$F0,$FE,$00 ; L DC.B $EE,$FE,$D6,$C6,$E6,$F6,$F6,$00 ; M DC.B $FC,$C6,$C6,$E6,$F6,$F6,$F6,$00 ; N DC.B $7C,$C6,$C6,$E6,$F6,$F6,$7C,$00 lA6 ; O DC.B $FC,$C6,$C6,$FC,$E0,$E0,$E0,$00 ; P DC.B $7C,$C6,$C6,$CE,$DE,$DE,$7F,$00 ; Q DC.B $FC,$C6,$C6,$FC,$CE,$CE,$CE,$00 ; R DC.B $7C,$C0,$C0,$7C,$0E,$0E,$FC,$00 ; S DC.B $FE,$18,$18,$38,$78,$78,$78,$00 ; T DC.B $C6,$C6,$C6,$E6,$F6,$F6,$7C,$00 ; U DC.B $CE,$CE,$CE,$CC,$D8,$F0,$E0,$00 ; V DC.B $E6,$E6,$E6,$F6,$FE,$EE,$C6,$00 ; W DC.B $C6,$6C,$38,$6C,$EE,$EE,$EE,$00 ; X DC.B $C6,$C6,$C6,$7E,$0E,$0E,$FC,$00 ; Y DC.B $FE,$0C,$18,$30,$70,$F0,$FE,$00 ; Z DC.B $08,lBДO$08,$7F,$3E,$1C,$36,$22,$00 ; * [ DC.B $7C,$06,$06,$7C,$E0,$E0,$FE,$00 ; 2 \ DC.B $FE,$C0,$FC,$0E,$0E,$0E,$FC,$00 ; 5 ] DC.B $18,$18,$18,$18,$18,$00,$18,$00 ; ! ^ DC.B $00,$00,$00,$00,$00,$18,$30,$60 ; , _ DC.B $00,$00,$00,$00,$7E,$00,$00,$00 ; - ` DC.B $00,$00,$00,$00,$00,$18,$18,$00 ; . a dc.b $00,$00,$00,$00,$00,$00,$00,$00 ; spc b DC.B $00,$38,$6C,$38,$6E,$6C,$3A,$00 ; & c DC.B $C6,$C6,$C6,$7E,$0E,$0E,$0E,$00 ; 4 d DC.B $00,$00,$30,$30,$00,$30,$30,$00 ; : e lC;F ; packed note data for each track NOTES DC.L $00000001,$00000000,$1D000000,$01000000 DC.L $001D5555,$55555555,$55551D1D,$2E1D161E DC.L $2E1D1D1D,$2E1D161E,$2E1D1D1D,$2E1D161E DC.L $2E1D1D1D,$2E1D161E,$2E1D0000,$00000000 DC.L $00000000,$00011445,$45101E27,$27272717 DC.L $1713130B,$55555555,$55555555,$0A1E1E1E DC.L $0A1E1E1E,$0A1E1E1E,$0A1E1E1E,$0A1E1E1E DC.L $0A1E1E1E,$0A1E1E1E,$0A1E1E1E,$01000001 DC.L $10411041,$0A022D25,$1D29251D,$11145115 DC.L $01145115,$1E1E1E1E,$1E26262lD`.6,$16161E1E DC.L $1E1E1E12,$12121655,$55555555,$5555550A DC.L $1D1E1D0A,$1E1D1E0A,$1D1E1D0A,$1E1D1E0A DC.L $1D1E1D0A,$1E1D1E0A,$1D1E1D0A,$1E1D1E11 DC.L $10015554,$50000115,$1D151115,$11090109 DC.L $13131313,$13111451,$15011451,$15161616 DC.L $16161616,$1616161E,$1E1E1E1E,$12121216 DC.L $55555555,$55555555,$15162E15,$02162E16 DC.L $15162E15,$02162E16,$1D1D2E1D,$161E2E1D DC.L $1D1D2E1D,$161E2E1D,$55555555,$55555555 DC.L $0A151615,$0A161516,$0A151615,$0A161516 DC.L $0A1D1E1D,lE}$0A1E1D1E,$0A1D1E1D,$0A1E1D1E DC.L $11100155,$55400001,$151D1511,$15110902 DC.L $2D2D022D,$02251041,$54017501,$10412929 DC.L $2929251D,$151D1101,$0917170B,$0B0B0001 DC.L $00010001,$00012916,$021E5555,$55555555 DC.L $5555292A,$2E292A29,$2E2A1516,$2E151615 DC.L $2E160203,$2E020302,$2E031D1E,$2E1D1E1D DC.L $2E1E1041,$54017500,$00010909,$0909151D DC.L $251D1717,$0B0B0B10,$41540100,$00000109 DC.L $09090915,$11010900,$01000155,$25000129 DC.L $160A260A,$0A2E2E2E,$2E555555,$5555555lF*(5 DC.L $55292A2E,$292A292E,$2A15162E,$1516152E DC.L $160A0B2E,$0A0B0A2E,$0B0A0B2E,$0A0B0A2E DC.L $0B555555,$55555555,$550A1516,$150A1615 DC.L $160A1516,$150A1615,$160A090A,$090A0A09 DC.L $0A0A090A,$090A0A09,$0A111451,$15011451 DC.L $15161616,$16161616,$1616161E,$1E1E1E1E DC.L $1E1E1E1E,$55400001,$55000111,$1E0A120A DC.L $160A2226,$1E1E1E1E,$1E115555,$55100000 DC.L $151E0B1F,$1E0B1F1E,$0B1F1E0B,$1F2B271F DC.L $171F1755,$50001554,$5000150B,$170B032A DC.L $2E07032A,$1E161E13,lG$13131313,$00000051 DC.L $00000055,$09151D29,$1D151D00,$51000000 DC.L $55000009,$151D291D,$151D0000,$00510000 DC.L $0051151D,$09151D01,$00510000,$00510000 DC.L $151D0915,$1D010000,$05510000,$00550915 DC.L $09151D0A,$16020A05,$51000000,$55000009 DC.L $1509151D,$0A16020A,$00000055,$00000015 DC.L $0A021602,$15091D00,$55000000,$1500000A DC.L $02160215,$091D0000,$00010000,$00001D00 DC.L $00000100,$0000001E,$55555555,$FFFFFFF5 DC.L $1D09151D,$09151D09,$151D0915,$1D09151D DC.L $0lHKS99151D09,$151D0915,$1D09151D,$09151D09 DC.L $151D0915,$1D09151D,$09151D09,$151D5555 DC.L $5555FFFF,$FFFF1D1D,$020A1D1D,$020A160A DC.L $020A160A,$020A161E,$151D161E,$151D161E DC.L $151D161E,$151D2A26,$1E2A261E,$2A261E2A DC.L $261E2A26,$1E2A5555,$5555FFFF,$FFFF1E0A DC.L $2A1E0A26,$1E0A161E,$0A261E0A,$2A261E0A DC.L $2A1E0A26,$1E0A161E,$0A261E0A,$2A1E1E0A DC.L $2A1E0A26,$1E0A161E,$0A261E0A,$2A1EFFFF DC.L $FFFF0000,$00511E1E,$160A1616,$0A020A0A DC.L $02290202,$291D2929,$1D151D1D,lIױ~$15091515 DC.L $09010505,$01051D15,$1D000000,$01000000 DC.L $511E0901,$09555555,$55000000,$511D1D2E DC.L $1D161E2E,$1D1D1D2E,$1D161E2E,$1D1D151D DC.L $55555555,$00000051,$0A1D1E1D,$0A1E1D1E DC.L $0A1D1E1D,$0A1E1D1E,$1E1E1E01 ; sample numbers SAMPLES DC.L $01010202,$03020202,$03020202,$03020202 DC.L $03020202,$03020202,$03020202,$03020202 DC.L $03020103,$03030303,$03030303,$04050505 DC.L $04050505,$04050505,$04050505,$04050505 DC.L $04050505,$04050505,$04050505,$07070707 DClJq.L $07070707,$06060606,$06060606,$06060606 DC.L $06060606,$06060604,$05050504,$05050504 DC.L $05050504,$05050504,$05050504,$05050504 DC.L $05050504,$05050507,$07070707,$07070707 DC.L $03030303,$03060606,$06060606,$06060606 DC.L $06060606,$06060606,$02020302,$02020302 DC.L $02020302,$02020302,$02020302,$02020302 DC.L $02020302,$02020302,$04050505,$04050505 DC.L $04050505,$04050505,$04050505,$04050505 DC.L $04050505,$04050505,$07070707,$07070707 DC.L $07070707,$07070707,$0707lKق$0707,$07070707 DC.L $07030303,$03030606,$06060202,$03020202 DC.L $03020202,$03020202,$03020202,$03020202 DC.L $03020202,$03020202,$03020707,$07070707 DC.L $07070303,$03030307,$07070707,$07070706 DC.L $06060306,$06030303,$03020203,$02020203 DC.L $02020203,$02020203,$02020203,$02020203 DC.L $02020203,$02020203,$02040505,$05040505 DC.L $05040505,$05040505,$05040505,$05040505 DC.L $05040505,$05040505,$05060606,$06060606 DC.L $06060606,$06060606,$06060606,$01010101 DC.L $010101lLni01,$01030303,$03010101,$01010101 DC.L $01010101,$01010101,$01010101,$01010101 DC.L $01010101,$01010103,$03030303,$07070707 DC.L $07070707,$07070707,$07070707,$07070707 DC.L $07070707,$07070707,$07070707,$07070707 DC.L $07070707,$07070707,$07070707,$07070707 DC.L $07070707,$07070706,$07070707,$07070707 DC.L $07070707,$07070707,$07070707,$07070707 DC.L $07070707,$07070707,$07070707,$07070707 DC.L $07070707,$07070707,$07070707,$07070707 DC.L $07070707,$07070707,$07070707,$0707lM0707 DC.L $07070707,$07070707,$07070707,$07070707 DC.L $07070707,$07070707,$07070707,$07070707 DC.L $07070707,$07070707,$07070707,$07070707 DC.L $07070707,$07070707,$07070707,$07070707 DC.L $07070707,$07070707,$07070707,$07070707 DC.L $07070707,$07070707,$07070707,$07070707 DC.L $07070707,$07070707,$07060707,$07020203 DC.L $02020203,$02020203,$02020203,$02020202 DC.L $04050505,$04050505,$04050505,$04050505 DC.L $03030300 xpos_SF DC.W 128 ypos_SF DC.W 0 zpos_SF DC.W 256 lNfN=COLTAB_CB DC.W $0F00,$0F20,$0F40,$0F60,$0F80,$0FA0,$0FC0,$0FE0 DC.W $0FF0,$0EF0,$0CF0,$0AF0,$08F0,$06F0,$04F0,$02F0 DC.W $00F0,$00F2,$00F4,$00F6,$00F8,$00FA,$00FC,$00FE DC.W $00FF,$00EF,$00CF,$00AF,$008F,$006F,$004F,$002F DC.W $000F,$020F,$040F,$060F,$080F,$0A0F,$0C0F,$0E0F DC.W $0F0F,$0F0E,$0F0C,$0F0A,$0F08,$0F06,$0F04,$0F02 DC.W $0F00,$0F20,$0F40,$0F60,$0F80,$0FA0,$0FC0,$0FE0 DC.W $0FF0,$0EF0,$0CF0,$0AF0,$08F0,$06F0,$04F0,$02F0 DC.W $00F0,$00F2,$00F4,$00F6,$00F8,$00FA,$00lOݛ~FC,$00FE DC.W $00FF,$00EF,$00CF,$00AF,$008F,$006F,$004F,$002F DC.W $000F,$020F,$040F,$060F,$080F,$0A0F,$0C0F,$0E0F DC.W $0F0F,$0F0E,$0F0C,$0F0A,$0F08,$0F06,$0F04,$0F02 ; DC.W $0F00,$0F20,$0F40,$0F60,$0F80,$0FA0,$0FC0,$0FE0 ; DC.W $0FF0,$0EF0,$0CF0,$0AF0,$08F0,$06F0,$04F0,$02F0 ; DC.W $00F0,$00F2,$00F4,$00F6,$00F8,$00FA,$00FC,$00FE ; DC.W $00FF,$00EF,$00CF,$00AF,$008F,$006F,$004F,$002F ; DC.W $000F,$020F,$040F,$060F,$080F,$0A0F,$0C0F,$0E0F ; DC.W $0F0F,$0F0E,$0F0C,$0F0A,$0F08,$0F0lP"^6,$0F04,$0F02 COLTAB_SC DC.W $0800,$0900,$0A00,$0B00,$0C00,$0D00,$0E00,$0F00 DC.W $0F00,$0F10,$0F20,$0F30,$0F40,$0F50,$0F60,$0F70 DC.W $0F80,$0F90,$0FA0,$0FB0,$0FC0,$0FD0,$0FE0,$0FF0 DC.W $0FF0,$0FF1,$0FF2,$0FF3,$0FF4,$0FF5,$0FF6,$0FF7 DC.W $0FF8,$0FF9,$0FFA ; dc.w $0FFA,$0FF9,$0FF8,$0FF7,$0FF6 ; DC.W $0FF5,$0FF4,$0FF3,$0FF2,$0FF1,$0FF0,$0FF0,$0FE0 ; DC.W $0FD0,$0FC0,$0FB0,$0FA0,$0F90,$0F80,$0F70,$0F60 ; DC.W $0F50,$0F40,$0F30,$0F20,$0F10,$0F00,$0F00,$0E00 ; DC.W $0D00,$0C00,lQ<$0B00,$0A00,$0900,$0800 CNOP 0,4 CHIP_START ; 3552, 3530, 3480, 3450, 3286, 3278, 3246, 3208, 3188 PRINTT PRINTT "INTRO SIZE:" PRINTV *-START PRINTT *********************************** *** COPPERLIST *** *********************************** COPPERLIST_CR dc.w $100,$0200 ; no dma dc.w $08e,$2c10 ; Window start dc.w $090,$3cf0 ; Window stop dc.w $092,$30 ; Data fetch start = xx1/2-8.5 dc.w $094,$d8 ; Data fetch stop = PLwdt*4-8+DDstart dc.w $108,0 ; Mod 1 oddlR* dc.w $10a,0 ; Mod 2 even dc.w $104,$00 ; Bplcon2 dc.w $102,$00 ; Bplcon1 spr1_CR dc.w $120,0,$122,0,$124,0,$126,0,$128,0,$12a,0,$12c,0,$12e,0,$130,0,$132,0,$134,0,$136,0,$138,0,$13a,0,$13c,0,$13e,0 DC.W $01A0,$0000,$01A2,$0FFF,$01A4,$0AAA,$01A6,$0555 DC.W $01A8,$0000,$01AA,$0FFF,$01AC,$0AAA,$01AE,$0555 DC.W $01B0,$0000,$01B2,$0FFF,$01B4,$0AAA,$01B6,$0555 DC.W $0180,$000 dc.w $3107,-2 BUF1_CB ds.l 55 dc.w $3201,-2 dc.w $180,0 dc.w $3301,-2 p1_SF dc.w $e0,0,$e2,0,$e4,0,lS<$e6,0 p1_MB dc.w $e8,0,$ea,0,$ec,0,$ee,0 dc.w $100,$4200 dc.w $0180,$0000,$0182,$0FFF,$0184,$077A,$0186,$0336 dc.w $0188,$0FFF,$018A,$0FFF,$018C,$0FFF,$018E,$0FFF BUF_MB ds.l 80*9 dc.w $8701,-2 dc.w $100,$2200 dc.w $9101,-2 p1_SC dc.w $e8,0,$ea,0 dc.w $100,$3200 BUF_SC ds.l 68*5 dc.w $1601,-2 dc.w $100,$2200 dc.w $180,0 dc.w $2107,-2 BUF2_CB ds.l 55 dc.w $2201,-2 ;dc.w $96,$8020 dc.w $180,0 dc.w $100,$1200 ;dc.w $104,8 dc.w $182,0 dc.l -2 CRD_SPRITE dc.w $24b8,lT`J$2a06 dc.w $0000,$0000 dc.w $52a4,$3192 dc.w $8603,$0207 dc.w $7237,$f637 dc.w $1636,$1636 dc.w $e424,$f636 dc.w $0000,$0000 dc.w $0000,$0000 dc.w $24c0,$2a06 dc.w $0000,$0000 dc.w $0a52,$4631 dc.w $4829,$586b dc.w $cb73,$db73 dc.w $d96b,$d96b dc.w $0642,$4f6b dc.w $0000,$0000 dc.w $0000,$0000 dc.w $24c8,$2a06 dc.w $0000,$0000 dc.w $9021,$8a10 dc.w $4a6b,$5a29 dc.w $cc29,$cc6b dc.w $4c6b,$4c6b dc.w $0832,$4c33 dc.w $0000,$0000 dc.w $0000,$0000 dc.w $24d0lUw-1,$2a06 dc.w $0000,$0000 dc.w $4522,$c319 dc.w $0861,$0023 dc.w $8723,$8f63 dc.w $0163,$0163 dc.w $0e32,$0f3b dc.w $0000,$0000 dc.w $0000,$0000 dc.w $24d8,$2a06 dc.w $0000,$0000 dc.w $94a5,$8c63 dc.w $4a52,$5ad6 dc.w $dcf7,$dcf7 dc.w $5ad6,$5ad6 dc.w $1087,$5ad7 dc.w $0000,$0000 dc.w $0000,$0000 dc.w $24e0,$2a06 dc.w $0000,$0000 dc.w $0000,$0000 dc.w $8000,$8000 dc.w $0000,$0000 dc.w $8000,$8000 dc.w $0000,$8000 dc.w $0000,$0000 dc.w $0000,$0000 EMPTYSPRITlVkE ds.l 4 ; sample 1, 110 SAM1_4MAT ; notlsung! 2/42 ; DC.W $0000,$F3F3,$EDEB,$E8E8,$E4E2,$E0DD,$DAD5,$D1D8 ; DC.W $E8FB,$1206,$EBE8,$F2E6,$CCD7,$FF04,$EEDC,$E604 ; DC.W $0D06,$1F38,$3C20,$0F14,$2200,$0000 ; DC.W $0000,$0000,$3729,$1E0F,$02F7,$EFEA,$E3DB,$D4D2 ; DC.W $D0D1,$D2D2,$D0CB,$C9CA,$CDD3,$DCE6,$EEF6,$010B ; DC.W $1214,$1B2C,$393C,$2F24,$2320,$160B,$0D15,$1A0A ; DC.W $F9F1,$F6FE,$FDF5,$ECEA,$E4DB,$D5DD,$EAF5,$F5EC ; DC.W $E9F5,$FDFE,$FD0C,$1714,$0005,$1C33,$2F2B,$333D ;lWN DC.W $3525,$1B18,$170C,$FEF3,$F3ED,$EBE8,$E8E4,$E2E0 ; DC.W $DDDA,$D5D1,$D8E8,$FB12,$06EB,$E8F2,$E6CC,$D7FF ; DC.W $04EE,$DCE6,$040D,$061F,$383C,$200F,$1422,$0000 ; DC.W $0000 ; packed DC.W $0000,$0000,$2828,$1808,$00F0,$E8E8,$E0D8,$D0D0 DC.W $D0D0,$D0D0,$D0C8,$C8C8,$C8D0,$D8E0,$E8F0,$0008 DC.W $1010,$1828,$3838,$2820,$2020,$1008,$0810,$1808 DC.W $F8F0,$F0F8,$F8F0,$E8E8,$E0D8,$D0D8,$E8F0,$F0E8 DC.W $E8F0,$F8F8,$F808,$1010,$0000,$1830,$2828,$3038 DC.W $3020,$1818,$1008,$F8F0,lXU$F0E8,$E8E8,$E8E0,$E0E0 DC.W $D8D8,$D0D0,$D8E8,$F810,$00E8,$E8F0,$E0C8,$D0F8 DC.W $00E8,$D8E0,$F808,$0018,$3038,$2008,$1020,$F800 DC.W $0000 ; sample 2, 110 SAM2_4MAT ; DC.W $0000,$0000,$1C26,$1C28,$2400,$0000,$1E2C,$2B2D ; DC.W $3859,$625F,$5F5B,$5D4D,$2006,$0000,$0000,$0000 ; DC.W $0000,$001D,$1D06,$0000,$0000,$0000,$1A25,$2C3C ; DC.W $3F3E,$3415,$0000,$0005,$0100,$0102,$0000,$0000 ; DC.W $0000,$000A,$1212,$1313,$1A27,$2828,$2725,$2725 ; DC.W $2322,$2222,$2121,$1F1F,$1F1E,$1D1lY6^E,$1D1B,$1A19 ; DC.W $1A18,$1817,$1817,$1615,$140D,$0805,$0604,$0000 ; DC.W $0001,$0607,$0809,$090B,$0D0E,$0C09,$0707,$0000 ; DC.W $0000 ; packed DC.W $0000,$0000,$1820,$1828,$20F8,$0000,$1828,$2828 DC.W $3850,$6058,$5858,$5848,$20F8,$0000,$0000,$0000 DC.W $0000,$0018,$1800,$0000,$0000,$0000,$1820,$2838 DC.W $3838,$3008,$0000,$0000,$0000,$0000,$0000,$0000 DC.W $0000,$0008,$1010,$1010,$1820,$2828,$2020,$2020 DC.W $2020,$2020,$2020,$1818,$1818,$1818,$1818,$1818 DC.W $1818,$181lZ0,$1810,$1010,$1008,$0800,$0000,$0000 DC.W $0000,$0000,$0808,$0808,$0808,$0808,$0000,$0000 DC.W $0000 ; sample 3, 56 SAM3_4MAT DC.W $0000,$0003,$0B29,$6900,$9126,$D20A,$D789,$49FC DC.W $73DA,$90E2,$72D0,$D6ED,$DADE,$F6E3,$B7C3,$BBDD DC.W $9FCE,$C8DE,$AFCF,$04A7,$E1B1,$C605,$BBF1,$CFAB DC.W $EFCE,$0000,$0000,$0000 ; sample 4, 54 SAM4_4MAT DC.W $0000,$060E,$2800,$FB16,$05E8,$4400,$E8D8,$A4BA DC.W $2139,$E1FA,$1B24,$0E18,$1A2B,$4648,$313D,$4041 DC.W $4140,$3F3B,$3636,$2924,$l[E1D18,$120E,$0701,$FCF7 DC.W $F2ED,$EB00,$0000 ; sample 5, 52 SAM5_4MAT DC.W $0000,$FEF8,$E923,$DD00,$2BD4,$1100,$EE22,$DDFE DC.W $27D0,$38EF,$EA2E,$DE00,$F0EF,$20CF,$2000,$E620 DC.W $00EE,$0F00,$0F08,$DE1F,$F4EC,$1FE0,$0010,$F010 DC.W $0000,$0000 ; sample 6, 34 SAM6_4MAT DC.W $0000,$0000,$192A,$EADB,$DBE3,$EBEF,$F4FC,$0603 DC.W $0204,$0707,$0705,$0201,$0102,$0100,$0000,$0000 DC.W $0000 ; sample 7, 10 SAM7_4MAT DC.W $0000,$0000,$3195/2,$41F9/2,$0003/2 SAME_4MAT ;Sl\`AM1_4MAT incbin 4-mat1 ; lead1 ;SAM2_4MAT incbin 4-mat2 ; lead2 ;SAM3_4MAT incbin 4-mat3.cru ; clap bass drum o.hihat ;SAM4_4MAT incbin 4-mat4.cru ; bass ;SAM5_4MAT incbin 4-mat5.cru ; hihat (mit pfeifen) ;SAM6_4MAT incbin 4-mat6 ;SAM7_4MAT incbin 4-mat7 ;SAME_4MAT CHIPDATASIZE = *-CHIP_START CODESIZE = *-START ; SECTION SCREENS,BSS_c CHIPMEM_CR dc.l 0 PIC1_SF dc.l 0 ; SCREEN1_SF PIC2_SF dc.l 0 ; SCREEN2_SF PIC3_SF dc.l 0 ; SCREEN3_SF PIC_MB dc.l 0 ; SCREEN_MB Pl]XpIC1_SC dc.l 0 ; SCREEN1_SC PIC2_SC dc.l 0 ; SCREEN2_SC PIC3_SC dc.l 0 ; SCREEN3_SC CHIPDATA_CR dc.l 0 ; ptr to chip data (samples+copperlist) DELAY_SC dc.b 0 COUNT_SC dc.b 0 dc.w 0 SINCOUNT_SC dc.w 0 FONT16 ds.b 16/8*16*59 ;SINTAB_SC ds.w 128*6 PERSTAB_SF ds.w 4096 STARTAB_SF ds.w 181*3 SINTAB_SF ds.w 1024+2 SINTAB_SC ds.w 256*3 TAB_SF ds.l 181 ;SCREEN1 ds.b 44*240*2 ; ds.b 44*240*2 ; ds.b 44*240*2 ;SCREEN_MB ds.b 44*90*2 ;SCREEN3_SC ds.b 48*16 ;SCREEN1_SC ds.b 44*140 l^윩4;SCREEN2_SC ds.b 44*140 ;mt4k_volumes dc.l 0 ; ptr to sample volume tab mt4k_periodtab ds.w 12*3 mt4k_voice1 dc.l 0,0,0,0,0,$00000,0,0,0,0,0 ; 1 mt4k_voice2 dc.l 0,0,0,0,0,$00000,0,0,0,0,0 ; 2 mt4k_voice3 dc.l 0,0,0,0,0,$00000,0,0,0,0,0 ; 4 mt4k_voice4 dc.l 0,0,0,0,0,$00000,0,0,0,0,0 ; 8 mt4k_pattpos dc.w 0 mt4k_dmacon dc.w 0 mt4k_counter dc.b 0 mt4k_songpos dc.b 0 MOD_4K ds.b 43*256 ds.b 4096 ; sanity buffer :) DATASIZE = *-PIC1_SF *****************************************l_티gH********** *** Create Executable *** *************************************************** ; don't care, following is some magic which just ; changes the unitialized data section above into a ; pseudo BSS section which occupies NO space in the executable ; and creates a valid executable by creating a HUNK_HEADER etc. ; The code below will NOT be added to the executable so it is ; not size optimized. ;) ; And you thought cracking knowledge can't be used for demo coding, ; I guess Dl`~addy Sting proved the opposite :P IFNE FINAL CNOP 0,4 ; automagically blows away zeros :) STING_POWAH_IS_BACK lea .BUFFER(pc),a0 move.l a0,a1 ; create HUNK HEADER move.l #$03f3,(a1)+ clr.l (a1)+ move.l #1,(a1)+ clr.l (a1)+ clr.l (a1)+ move.l #DATASIZE+CODESIZE,d0 moveq #0,d1 divu.l #4,d1:d0 tst.l d1 beq.b .ok addq #1,d0 .ok ;or.l #$40000000,d0 move.l d0,(a1)+ move.l #$03e9,(a1)+ ; insert HUNK_CODE move.l #CODESIZE,d0 moveq #0,d1 divu.l #4,d1:d0 tst.l d1 la3beq.b .ok2 addq #1,d0 .ok2 move.l d0,(a1)+ ; copy intro data subq.l #1,d0 lea START,a2 .loop move.l (a2)+,(a1)+ dbf d0,.loop move.l #$03F2,(a1)+ ; insert HUNK_END ; a0: start ; a1: end rts AUTO jSTING_POWAH_IS_BACK\wb ram:intro.exe\a0\a1\ .BUFFER ds.b CODESIZE*2 ENDC  𪣴)BOCracktro4k.txtp񖨸E _ _ _ _ _ __ ____ ______\ S C A R A B /______ ____ __ _ _ _ ____/\ _ ____/\ _ ______/\ _ ___/\ _ ______/\ _ ___/\ .____/ _ //____ _ //____ .__ \\ ___ \\ .__ \\ __. _)____ _ __|_ \__ \/ \ \/ \ __/ \ / _/___ __/ \ | \ __ /_/ /______________/_________/_| \_\ \_| \_ ________//_/_ yop |________/ \_______/|________/ Sϕ at Breakpoint 2oo5 presents a (not so usual) 4k intro. Everything (Code, Graphics and Music) written and performed by StingRay. This is something to remember the good old times and was done 'For Fun, Not Status'. :=) For all you newschool dudes, this 4k intro is an almost 1:1 adaption of an old Skid Row cracktro that was used way back in the early 90's on mostly non-working cracks! :) Yeah, Skid Blow didn't have very good crackers (except for Blackhawk and FFC) but ۋI guess this is off topic here. :) Anyway, I hope you like this little 4.096 bytes executable, I for sure do. Features: --------- - 1oo% old-school code, i.e. no c2p used, just good ol' Copper and Blitter Raping! :) - nice chiptune by 4-Mat, unfortunately it doesn't sound as good as the original tune due to size problems (I'm a lousy coder, you know :D) - 'Seen 1ooo times before' effects :) - Source included, so all you new-school coders can have a look at how things were done over a decade ago :) You might also find some neat optimizing tricks (or maybe not :D) - this intro should work on any Amiga equipped with a 68o2o cpu, no AGA required! Well, I guess that's it for the features. Since there was no room to write greetings in the scroller, I'll place some greets'n'messages now and here. Following is a part of the original scrolltext that couldn't beS included in the intro due to size problems. dc.b "Greetings from Mastah Stingah rush over to Dalezy (fauler Sack :D), " dc.b "Browallia (thanks for the CD's), Slummy (did you ever get that mail " dc.b "from me?), LoadError (cool 4k's, but fix your startup code, PLEASE! :D), " dc.b "Darkhawk (traitor! :D Amiga is 68k, nothing else!), Blueberry (thanks for " dc.b "your cruncher, it's awesome!!!), Wade (long time no see, where are you " dc.b "hiding?), Scicco (how's life deep i|n the south? :D), Sniper (it's been " dc.b "quite a while since you last touched an assembler, you know what they " dc.b "say, 'C' stands for CHAOS :D That's it for the greets, if I have " dc.b "forgotten someone, well, I'm getting older so I tend to forget things " dc.b "sometimes, sorry :D) " Ok, so much for the personal greets. We also greet our partners in demomaking in Iris, Spaceballs, Ephidrena, Up Rough, Scoopex, Nukleus, Software FailuVre, Tulou, Triad, Plush, Creators, Nature, Loonies, Moods and TBL. Some words about the source: ---------------------------- It can be assembled with Asm-Pro/Asm-One and shouldn't be too hard to fix for other assemblers, just remove the 'PRINTT' and 'PRINTV' lines and there you go. If you set the 'FINAL' flag at the very beginning of the source to 1, the intro will be saved out to 'RAM:Intro.exe', ready to crunch. I didn't include the used cruncher, as it wasn't done by me! (Respe6{k8ct to Blueberry/Loonies for his excellent and highly configurable cruncher!) I also left out all of my module converting routines, as I spent a LOT of time on them and I wanna keep some of my secrets! Try to convert the original module yourself and face the same headaches like me! :) This source is just for learning purposes, nothing more, nothing less! If you have any questions just drop me a mail at: StingRay_DSD@GMX.de Ok, that's it, have fun and reme BT