[bb] Rumble Beta 1a part 1/5 by Mikorians [ 1+ years ago ]

Started by BlitzBot, June 29, 2017, 00:28:39

Previous topic - Next topic

BlitzBot

Title : Rumble Beta 1a part 1/5
Author : Mikorians
Posted : 1+ years ago

Description : A force feedback rumble library by Todd Riggins aka: Pepsi.
I have included the .dll file and a slight modification to include a polar coordinate axis usage example as he requested.
This has been done since the links to it keep going dead.


Code :
Code (blitzbasic) Select
; DirectX7 Rumble Dll - BY: Todd Riggins aka: Pepsi - FREEWARE
; Demo #3 - Dynamic FFB Effect! Left mouse button in box area to change effect!
; Updated for polar coordinates by Mikorians - 2014

Global swidth=800
Global sheight=600
Graphics swidth,sheight,0,2
SetBuffer BackBuffer()

; Init DLL
di7=SystemProperty$("DirectInput7")
hwnd=SystemProperty$("AppHWND")
DX7RUMBLE_INIT%(hwnd, di7, 1)

; Get Number of Game Devices
Global totalgamedevices=TOTAL_GAMEDEVICES%()

For j=0 To (totalgamedevices-1)
FFB_AUTOCENTER%(j,0)
Next

Global customeffect1=CREATE_EFFECT%()
SET_EFFECT_SAMPLEPERIOD(customeffect1,0)
SET_EFFECT_AXES(customeffect1,2,1,0,0)
SET_EFFECT_DURATION(customeffect1,0,1)
SET_EFFECT_GAIN(customeffect1,10000)
SET_EFFECT_CONSTANTFORCE(customeffect1,0,0)
For j=0 To (totalgamedevices-1)
If FFB_AVAIL%(j)
If ATTACH_EFFECT%(j,customeffect1)=0
;;RuntimeError "Failed: Effect unable to attach to game device!"
Else

; HAS_EFFECT_SUPPORT and HAS_DYNAMIC_EFFECT_SUPPORT will write there results in the
; DX7Rumble_debug.txt file if you have the last parameter set to true of the DX7RUMBLE_INIT command.
For i=0 To 6
HAS_EFFECT_SUPPORT%(j,customeffect1,i)
Next
For i=0 To 6
HAS_DYNAMIC_EFFECT_SUPPORT%(j,customeffect1,i)
Next
EndIf
EndIf
Next


; Variables applied to change ffb during runtime
Global gXForce=0
Global gYForce=0

MoveMouse swidth/2,sheight/2

; Red dot will move to mouse position inside the box area
; Further away from the center of the box, the stronger the FFB effect!
Global dotx=swidth/2
Global doty=sheight/2


Global magnitude=0
PLAY_EFFECT%(customeffect1) ; Constant force magnitude is set to zero so playing the initial effect here you wont feel anything.
; the gXForce,gYForce vars will change during runtime, then will update the magnitude of the constant force, then will
; get updated by the UPDATE_EFFECT command where then you will feel the FFB " rumble " change.

;Blitz3d Blue
ClsColor 34,85,119
While Not KeyDown(1)

; Poll for Game Device(s) updated info
DX7RUMBLE_POLL()
Cls

; Crosshair marks the center
Color 0,0,0
Line swidth/2-25+1,sheight/2+1,swidth/2+25+1,sheight/2+1
Line swidth/2+1,sheight/2-25+1,swidth/2+1,sheight/2+25+1
Color 255,255,255
Line swidth/2-25,sheight/2,swidth/2+25,sheight/2
Line swidth/2,sheight/2-25,swidth/2,sheight/2+25
; Draw Box (boundry to keep dot in)
Color 0,0,0
Rect swidth/2-100+1,sheight/2-100+1,200,200,0
Color 0,255,255
Rect swidth/2-100,sheight/2-100,200,200,0
; Draw Dot
Color 0,0,0
Oval dotx+2-6,doty+2-6,12,12,1
Color 255,0,0
Oval dotx-6,doty-6,12,12,1


; Text Info
Color 0,255,0
Text 0,0,"; DirectX7 Rumble Dll - BY: Todd Riggins aka: Pepsi - FREEWARE"
Text 0,15,"; Demo #3 - Dynamic FFB Effect! Left mouse button in box area to change effect! Press Escape to Exit!"

Color 255,255,255
For j=0 To (totalgamedevices-1)
; Print Game Device Name on Screen
Text 0,45+(j*60),"("+Str$(j)+") "+GAMEDEVICE_NAME$(j)

; Dynamically change effect during runtime!
If FFB_AVAIL%(j)
Text 0,60+(j*60),"Force FeedBack IS Available - magnitude="+Str$(magnitude*100)
SetJoyForcesXY()
Else
Text 0,60+(j*60),"Force FeedBack NOT Available"
Text 0,75+(j*60),"No Effect Will Play!"
EndIf
Next

Flip
Wend

STOP_EFFECT%(customeffect1)
; Release Dll's Aquired Memory!
DX7RUMBLE_RELEASE()
End


; Apply updated forces
Function SetJoyForcesXY()
; Get changed values
If MouseX()>swidth/2-100
If MouseX()<swidth/2+100
If MouseY()>sheight/2-100
If MouseY()<sheight/2+100
If MouseDown(1)
dotx=MouseX()
doty=MouseY()
gXForce=dotx-swidth/2
gYForce=doty-sheight/2

; Modifying an effect is like creating a new one, but here
; you only need to specify the parameters you are modifying...
CLEAR_EFFECT(customeffect1) ; ie: zero it out

;If you need an adapter for your Microsoft Sidewinder or
;Microsoft Force Feedback 15pin to USB, search on Google
;for Teensy-based adapters, there are now purchasable,
;fully-assembled and tested units available (no drivers
;required) from:
;https://docs.google.com/forms/d/1D4Kc8dtIO80csKkV4HTwlzH7I3SAGXPGtU17d6zaDcg/viewform
;Reference:http://code.google.com/p/adapt-ffb-joy/wiki/HowToBuild
;(May not work with Windows 8)

;Cartesian Coordinates Example:
;SET_EFFECT_AXES(customeffect1,2,1,gXForce,gYForce)
;Polar Coordinates Example
Ang=Rec2Pol(dotx,doty,swidth*.5,sheight*.5)*100
SET_EFFECT_AXES(customeffect1,2,0,Ang,0)
magnitude=Sqr((gXForce*gXForce)+(gYForce*gYForce))
If magnitude>100 Then magnitude=100
If magnitude<10 Then magnitude=0
SET_EFFECT_CONSTANTFORCE(customeffect1,0,magnitude*100)
UPDATE_EFFECT%(customeffect1,1,0,1,0,0,0,0,0)

EndIf
EndIf
EndIf
EndIf
EndIf
End Function

Function Rec2Pol#(X1#,Y1#,X2#,Y2#)
C# = 3.141592654 / 180
OX# = X2# - X1#: OY# = Y2# - Y1#:R# = Sqr((OX# ^ 2) + (OY# ^ 2))
If Sgn(OX#)=0 And Sgn(OY#)=0 Then Ret#=0:Goto XitR
If OX<0 And OY<0 Then QT=180
If OX<0 And OY>0 Then QT=180
If OX=0 And OY>0 Then Ret#=0:Goto XitR
If OX>0 And OY=0 Then Ret#=90:Goto XitR
If OX=0 And OY<0 Then Ret#=180:Goto XitR
If OX<0 And OY=0 Then Ret#=270:Goto XitR
Ret# = 90-ATan((OY / R#) / (OX# / R#))+QT
.XitR
Return Ret#
End Function

TO OBTAIN THE ENTIRE ARCHIVE INCLUDING THE .DLL FILE, YOU'LL NEED TO USE THIS PROGRAM
TO EXTRACT THE RELEVANT RAR FILE.

;HEXREAD
o=0:fl=0:ck%=0:pre_ck%=0:mck%=0
MyPath$="."
NM$="rarfile.hex"
FileIn=ReadFile(NM$)
NM$=ReadLine(FileIn)
FileOut=WriteFile(MyPath$+NM$)
ck%=ReadLine(FileIn)
While Not Eof(FileIn)
ReadIn$=ReadLine(FileIn)
If ReadIn$<>"" Then
o=0:For t=1 To Len(ReadIn$) Step 2
Nib1$=Mid$(ReadIn$,t+0,1)
Nib2$=Mid$(ReadIn$,t+1,1)
N1=Instr("0123456789ABCDEF",Nib1$)-1
N2=Instr("0123456789ABCDEF",Nib2$)-1
Byt=(N1*16)+N2
pre_ck%=pre_ck%+(Byt*(256^o)) ;Build 8 byte value
o=o+1:If o>3 Then o=0:mck%=mck%+pre_ck%:pre_ck%=0 ;Checksumming
WriteByte(FileOut,Byt)
Next
End If
Wend
CloseFile(FileOut)
CloseFile(FileIn)
If mck%<>ck% Then RuntimeError "Warning: Checksums did not match!"
End

YOU'LL NEED TO COPY AND PASTE THE PARTS OF EACH RAR FILE (PART 1 IS BELOW),
AND SAVE THEM FROM NOTEPAD, CHANGE THE ABOVE FILENAME TO MATCH THE NOTEPAD FILE YOU SAVED.
 THE RAR FILE MAY THEN BE EXTRACTED WITH THE APPROPRIATE DECOMPRESSION APPLICATION.
(WINRAR/UNRAR)

DX7RumbleBeta1a.rar
452380823
526172211A070051FC7341000D000000000000001C5C7440802F00B0040000DC11000002C0D813EF
BBBDB33614350F002000000064783772756D626C652E6465636C730C1950CCCD0C00001957BE817C
1D082B01D025D124BA2C836F4B31A4A6AD0E24A949AACAE96138949AAEBFD0FF36C97DEA348C8D35
2528A4D324B46F45EF802FCCCE67338730930A7E199D048079F673E3E05FBA8AC7A22EED583A540E
BC98B1C5B7E3C6A7E8A758BE4A3B9A186658FC3C23CBA5483ED04C2DC59F4C647AB8565BF907A9F8
FE1BBFDB07929CDD3CBD1CD266DDF0C71E253921F1E9D052CC38B9E0F8433A1C934FA2ACF186FF6F
5DE5B0B0CB0EDAB7F5FEF2C36B954BCDAAC4E4DD76646EFBBD24610C58B5F8649FB8AD7E7F2E4C27
C2DCE7E8E434A7763D4038B5B3C4D4D6E73105BAD3A0BD87B01DAB2AB3CC5D59CB4519C4DA4F565D
7223CE1153234232F4F2B4D9E5F5B4288E07B8592797E56FFACDE5975E42E1641DDCF8907CF1F5E1
03C062F5A344D6D7803BF3DBBAECBAB06B11CB89ACAD77F7F080AC15CEA3D121581FC5F2570488CD
EFA7B0EACEDB57AF215928648E269A99BAD4FA864C6C0CAC7E074E18B2BA3FBE8D0B0E0F6EF030E1
D13C1B144D1EC2B30A2D81F911F940524C838100E92681148524D8284DDCBCC2A6DC2345D2EEE755
429B69EB30E471584EBBEEBAD332A52EEB14F24C64F6C2F48AF4A5E1ABC32F25AD6F0519CA5ADAF0
519DA5ADEF0519EFFCD71790AE4048A9020A80245380480748A503F214B4881B0824504A403500C8
07F4030BA454AE82A1748A75C480748A55DF90A5A44BEC2BC8ABCA571AAE32B8FEAE31EC7840CF62
D58B530648F297B41E3694E1B6E142D3FEDCA76C742185B38292452E9FF37C7C7C72F8F41E25286A
5304F5387071450BCC5274F558443DBFE6F8FA7ABC3C4B0A6B2231D4F57292370E22360271BF6AEC
E4C8055F69936CFFF99B2C46D99DE0ABBA42B08516C02928FCB57C61F1D0362A20A0A30E0B08816C
B20A608A5ABE3B20A90D82AAAAC5C7194F5731C70C5A309E4E841F0BC1EE8B8076F87D3626632CDE
98351B66B80332CE58C40B648A4B3F2DDF1C9A0CDB45631213D59B8B65162D887ABC783BBE343D64
3946D5D8C79D6B4E2AE284A6D77A3B63A0BBF3AB9915AB7F49CA668245BBFBC9F0AECD5B8E1C10A8
8BA4E4D4EAD5F332DD806AD50777DAF45F78B1EEED3E8EC7922DAD783D8CA9B51E4569419A0434EB
61C59DAA4B37FB46E4FAB2EAED06EAD6F823FD9ACBF72F7ED83C32C7AB5D5F0D296269C4E63D9EA0
FBFCAB174E322F93BE59E2B13EE52739BD316AF5DBFAC1E64ED1688F3428CD779BDCE8F89F30083B
5B4D8103064CEE6A8346AA7CA66E237AE3AC690CF797200930556B7CDA7DC98FEF15DCD14C31F747
165234662F08366F789726AD7A08FB365E020D66AC5043D7071AB2B495CE8A324BF3039855113E48
98BBBC0B97DB6FDCDB2CB4F2B9AF3E7CDA295E50709E3A9BAB43FFFE1B58975D27D3B86A736CFD00
1AE8BC12F75D52E6F6AD1B192DC418B4D3743103C76A276A7EE8CB4DF6BAEA1622640A2C79A8B4F8
BB208E862E132038E2CF4E5789ED4132BB87079150674CAE7EB46431BBC014B5A0698E8AB071D69B
482A5F69C36CA1B0A1E3907DBA466C1D5401BADFA42731F9BA06059CB7114D8BB59C04A53A8B9B38
77D2CAFDB98BD79D1CB5504573A1037577EE2461DC3C2B930CAF47E10EB2256A9DB8A18E1C269F2F
2D4EB68D33A6D4D9EC106C1DCEA3CBFB00C1C9B2DF8423E8064870EB537442803100AE1D00000050
010002667863B90006B436143511002000000064783772756D626C655F6231612E646C6C14021511
0C8CD19C14233C5A45A16259806204021880C060D2069890DA1E243C208426DA4DE2102426D890E4
1931AD23640BB192448127693D58598E2934935BDF9CFBE841EEEB9BB366B9BAE38123F0B043481B
1B6798D9184713708DDA3136D36112402665DE65A4B32F33F77B5798BC0C7273EDFDBF7DCFDCE7E3
9C5975755DF35DAED76BB5DAACC3FC3FF78ED77C55D565E00839C39CA2EF2C962F597E141FCF5EA4
37CB1FC36589FD1749991CBFEB9159E7477AF98DF2DA1C0354E3C1DA4AECB67E1FD7D9F7FF6257EB
77FE1785E1992BF57C095D99BE14AF837F4F777492BF63C3D7F81A09090C6B48843BEDD66BEBEFBE
2A29A4E5AFCBA69AFCC1E7DBF9B5135EF24E7E6BF612CE866BE67E7DCF9AA09EFF73DFC7CD6FD33E
3FAD3EFDEA3D7EDD1D4F83F59C091FE95336FA7BFE856C3B647DEEEE7E2D5DBE0DCC47AD8DC11661
E9F8D38C95287C320FEE293D99129B25553AC5987E566C96AA0E1FE5D102B07E27CABE2DFF85FF8D
8E03DFB8F8677FA2B51BA87F323D67FEFFF85275BF4F6DA033C0DB181E733FA2222166B3091F8BFE
95BFB5DA0D9EBFBF33BFC11CE93885395C250785FE061B6DA05419636A588C10DA279C583D9A87F8
1B1F0FEB2C5991C7AB76DF3985A9F8FA8B3FFFF7F91451451451451451453FF4203B9AEE3381F164
9BA3DCCF345FF924FB15ACA66CF7B281E37B2AFD344CD3DA05BB86C1BC290F674905E4F67C378208
DDCC1A9484C056BEF27704B20444FF75B37AC4A0A1142C7E18275E6A6AA5F5CA7F5673A9BC58AA7F
5A1A04DDC878DEDD0FC741229C4AE3923F24EBEB412272DD38C58ABFDCF8282CEB9667D0B493DED9
CB40E0F795A4D5D2D34CBD6B6CE64382152E6765FB11F9E1129E7523B829455E634EBD5B5719BE1D
E32DDC36BA58A3AC82C90D8E840E7C73E404DEE754A29BEFAFB0BF0284A1F9683A2554A8202351A6
1A67C90A272DC6F459811EF39CEFA4BCFE039204BB432EBF8AE762D2161D25AE6ADA330FE9346511
835FDCC4EED80F27E886EDB5BC3264FE310D12DED442190740676B93EB5627F39E467A229D41D9B0
CCE3BCC84B7B0405BCB8103F55DDC2438CBF9CD7E43FD4AC5D0EB74CEB5DFBEBB5287AB380729D49
4308A6BD305C72E7DD18CE9A9508DD1C093AD9985D93AD59BE06DCBA816CB7E80E04D52D81DFDF37
070AA927E6968E9096286946B64912619EA5BAB5DF6E684306A68D0F1DA85331A4C3AD57FB28FA99
BA2BF0EF7A1143EC2CC89D64D52C4B70BE85C0834FBF18E48A8445C4110F08250354D46B7BD50B67
C060B22A9AE4754AD369AF7548CF531526FF0ED057408F0DD43FD86F2DEB624D4460121BC81D2DC0
6F0EFFF3ED22DD93ED1AFB867D53EF57FA9BF8C007750CB64D781CFFF137E27945474673BB9A354C
7D98086F081EA7F6772D79466425BD496FDA4123EE8FE935B44902284276412E2B73E4BBFE3AF4B0
2DBFBC16BC3F54D0AAEB9A00B46DBD1F7DE0B74D52C71C50F07967700A716FC6581800F68DA5859D
664C8274040925DDAEE088D700B8510885252BADDB46015F4D6D5EA7C1E6797024A588ECE10677FA
5146BCE6936167E9F2404614140E07CB774196570DC32574686EBB50030C806A50ED66162A5804D1
419C4C72607012A5C9547933035519467855EA66926DF05E0A948132A3763442EB296F977DE4CEEB
AEEF3E35FED1FFB9DF4A3B0F12589DB15A2D662EE2B07A67687AA132D78216FB3B5CAFD2599FF33C
8CF48542C1F919BE4A5BD954DB70BF8C20B119AE734303CFB61C969FC5D5BBF7E320E1D1564EEDD7
374376191B3F3E2808E4D5E24216D746653574A879BA205B7EA33057C1938AEB51A103CDF80982C1
936DFC98B943964C870DEC5404727C4B0F152524891FA5A96EAD735EC843C6A68D0EEE6C993E667F
B6288FB64CA0FF7EB5D30F188236166E64055F12EB655531CB70B157715504EBEA2D73A21113F855
2EFDE508E13A67621952A8DECAC5621EF70988A2AC5E7FD05C3B4FB0EBFB86E06A52977323958210
C448FF6097E25BD613E6FC9955C21E96F568E228EE24CC5BEA4C85ED8FBD8C12A6FEC003FD211F26
43EE1E54D1D1D73BB9F9DEBDA3545F5491DE105B8B1835C1963CA67C466BB9D843F8596AF81D1C4C
0C823933FA75D69D518394002810975243DF5A50F1745F265AABAE466F503AC31903C68DA1E5D52D
0CBFCC3358CAA8A06ED0C0BACEC5BA1FEF9F160A28322E1A29EB0324FA9435E0E19073BB06E863C9
681A834421C4CCD129E1E99F464CC1520E98140A29B79D99BB55830F2A44993895DE2BEB1A902D4D
CB3E487DB516C5644605C83BC2666A06B7B57EA383010343C9978AAE88187F285B1ED0CEC455761A
FCAEE01159115F2AC975350E685A14E49859DED3DA07B4F2578AA7C4E5884FF79C296C5FBE77AAB7
10F7540F435A78423BDBC64CD9F00A5912F17162E5DDD4F571415C21E75CCB8054C5B5FEB02E3414
F0A2B604450F642BB3524518C0301238EE13D86F4B894C0C0ED02CEB75AAFBC43FA87B60B19E88A2
B854A42701764D24EA6AC5DFC0B8F2B22054934AAAF540232977C15A67727C07A1858CCF0DAF1552
000C143AFCB1FC0EC291633F7C152300FE640AED99F34A120B0A8EAA38F8DA57ADE4C98E55108F6C
0CC0A0D1285962BFC29B7D1BC8442A52D3E85BAAAE0E9CFBCB0CC63742CDEDF94F0EAC51448BBC19
30192FBBA599BB8AC7B83831FCB06B9D7E132F3ADD489408FC2B1B91F58D277AE598CAD363A990F0
40AC0C64424EA223B9AF6AFF4D454C543EABAC60B1F242FF95561B6BCE5656CDB2A8C759BBF5F642
78FE8DB9697AB045922CD1934F058333C589076E93089FA0D78CBDD8B6071955A20D8C7D7D74A2DC
5393407E0A5F0E1BF3C347A2BDF8DF8F20690EBC553289900FBCA90B615DE857340203D7AEABC940
D8D06DE17D26194F164FDC24770FAA2E53956ABC11E2CCF1F73BB2E68755107CB630843EB77BFCEF
EA28FDF7F52DFD046CD1E0A3C2FFAB81FC44BC75A2FF27FA87FE57F52DF988DBA3CD450FFAB7FEE5
2FB3A1FD43FDEA7EB7C8AC5CFBD0A7FEA5A78FFD9BFEC1725BD75CC98E43EBDA4A8F8DD341CB3529
FE72BEDED03F219890F04045F2A91C5FE5263A1595F85F683CB058943221F4AAE55FEC511E932608
FF5EDD0FBF9B8B00E4A37A57164480767FB1465E06F41A2499D4577048E6B60B3FEF11F292F7F99A
3EC7A0FDFF968139D527FDD2D3F7D4A7941371A9D79D9A4FFB8C13F7FF8CD27867F2A6B619F4E59A
7E98B4637CA6B111D2D221E181F5E4005E44C70D2C5524857FF591C924B2D9F3E1CBBF9F13329F4F
FB857ECFFAC916CF3296362F9E71FD727309F41CFFAA91F58702AA971FBB699DC426AE8AB0147C61
9F22D9B5776F0C0B5193D67C93ECB0F19FDE2271B984F40DD4D5469213B4F5BF2234542D012968E3
C84CC03FB12C04052197A3432A9ECCBAA87BE176CD55BF2911221F22B5957757B02EF9F622C4CDD5
B9C1D33F1F0D1AB24A231F63AE7F79571C24DF1FB0473A98AD954E59E1682DFF590F292FABC7957D
8BD7EFEA27575974FF24B4FEAEA65D3C677E64D7FC67939D727F94C13FABC24F3AC4DE653AE2F5C9
F68A8429F91C740820B8EE238E05BD21278491AA824547FFA0867BDD7258B17CFF0675FCE993E3D6
50F669514FBE45B27FEF469E77C9B8C4EBFE72C9F355C3ECD2EB2B884B2238608ED5609699BEA66F
FC62DD9B1A95FCBCB3ED498E95A0966A50D675E9ACEC0D8D7FB3059FFC7707E29D552396C4AC294E
7A47819C7DAD94A7FF41C1F8A43F6F2896285F3D0BFAB7CAFFF41C1E9E7E3CAA78AB4DFE4CDBF96E
9FE5304FEAA84F3F99378F4EACF29FFCD707E290CE36512C5BBE760D1FCCCA7C7FEF9C1F8A43F4A8
B3E83E5FCF34FE77B93FFF94E0FDDE4D2BD00259A94281249ABB934FAABB37CCCB0ECD139D947E39
CB23E8CA72DF04D19780967F6EC1CD03086362177B6020D26ACFFCCD2856AC8B2D67D4A518393D4A
6B65624624AEBABB058EFE15C1C51D038A62E9584AA8C9318C65A47660FFF938A99346FAB715F789
2FC1997CE6A06E993853A1E0AF85BB655721F5E485AC25961B2FAB1C08713602F4686B524A1130A0
31F271268327B79CD35844B8A245ABE7BA94B577FC571F3D1F3617F155905939227574A30AB38602
55B69E5F364E5537B9821766921FED928A44232582407D0C7CE1E56328C05A4D41E8DC4C4BAC126D
085E3ED218BF3E49F5A961C9C4BB4979A24E7E26C32FE4B693EA92CA5D59103F280328D03B08F7D9
3E30A354EA755AF9C5A6CA003B4715E93EF5F44BBF11C42A30542932BD8D8651689C57EBFD3B2E44
15BA19FE25919ADB9448A5E807D6537E50B2EB70C6D0AC95E7FF9C42F6C5277D2AFA7FD322FD9037
D3FC7109F067841FAA49F11F57DB7F8F353E1369BF293AEE13C59A7C25137B14EB289E38A9F0BEFE
69A9C4EB9D249B8AC220D3F84AA57441241271CFABF53F820390CFA3A182C63608051755EBF76278
B78AB6079709F4B7272E4872F7B619B66AAD318F138A0606E8799977DAA592C45C3BA4A78F841FBE
49ED9F5671FE167253F3E526E813ABB669DD927C2B537269D5AA71885467C92AA93213919104F629
3E6F5CFA7EFBFD10205631E5641BB8D711657A5D745CCF6C59E1362320A9824A15E551B86E00B02F
C87C946A61BA13ECE2E5984180DA7EAA3CBD4B86C4397D94A2628D0CBA6A49294D4F642081C4D10E
7DC2557B907DE6528DC675FB689D71F209F095D4B8934DFCF964E7FD7209F068DDC149BF6B2C9CD7
A77037E768DC7401F26AB2779B964E6A12E3040E3944D1ADCA75DA27C60F5C7A000D033EAA74C9F9
71BE0AC42344FA47CCC42E3307513AAB8F9BAA58BFF71ECA980872949460EA6A049D2E41F62B49A1
F476593D7EAC7A7C43D22F16A36C2D4095E895C1543254881BCD6135881965C09B458091CC0B2C9D
0D9272768646400592BD1140B796579DE09CEEC1A357029698F9D8BD0F31E8856A03A1EBB168AF45
C03A1DF3C96AC2EDF7EB749E467A6372E0ED3EAEA5FB5B0F8B15D0F0FDD954B6CEBE72526FFE3FE5
924F837C927C5CE4139FC594272D8CBA7FB302055661743DAA49CB48219AD75A57A3D01465F4BD0F
4627570BBBB0FA1F1BCC8A5FABF9F22FAFD63A1524E873112981753F411EC474456572297F1AA392
5D51AFEA2531383FCA06CA614B0E95603A737F3B0E7B7B0E1B9D54C37A832500001B2C7A48AC205B
0DCAB9A77342CB3AF2415CBEDB6947EA102B616D3CCA5CA5985044EA8B6EA0E5CC44089E2E716ACE
AA19F08A5D5B5A51E7A953CFBF7F7000FEE4C2F54AD78574987AEB12A947C7BE552E047032B531AE
0F2C2163B8EC55AD0CA6AB003CC6BDCE9305EED22E76EA4B3BE4128433677CA7CD8549DD15A6F631
0AFA226BD5425C1976582FCB100FB2FC68BCC2507C345F99F1B8FBC09E419AE365D29F35F5FCE7F3
BE47D00A0F35D060BD2B59BEBF05FCF091E226BB14C15579F4E78A9DF929CF291E612843EB8EAE14
3074CDCAB9494C7DE54820BF470A15C1BFA99D598583418192EC93BEA92CAF7C6515E009928B83F8
A61F31919130142011062DDB25FB65E2504312D973E58A97E47CF4543D476B6115C21BEA2C5CA435
6AD7054297EE9956E118DF984EBE15EFF12699B17F8944CEEB09080BA12AE7765D92BC2121C83FB8
D0C5507A224211BB64308A3980BA2E68E00ECC304D02507C2E5F361518865C82F2D25832E86CF1B8
1F4125DC037C5E92841AC85F3E2F3C1165C886A75BA6441392183F9CE382B07CD185FC2C94017330
7CD83CD1033155CC7546A65C94A19F25F6A4F928CA12830C2C01EA98524F1381F56964A7C655FDEB
AE75C1D394A63FD069B15D85B4BEDA274044769B5B3A9AFED1E80B488EC43C3DA441B413D28F8BAC
BCF37A671C5E88EB2DB392496AA06CAA4C9B48ABB822660EB5993A0946F603AF1D038AF012A343B6
49281B783CF8B1B85B4753B57B4D9051162F67C2DE1317E7ACA6C03CB579D795D9D43EE1B7787566
1DB93A90E7E475BB69418295E88EB799E18120C443A58FBF0FB02CF34C1BBEC29B649768F82E7E56
A6A5930BD335A9ACBA60A3438E09E64704460560B690EF348D36337EB049BBA69AE014635FF12C21
6B2CE35C174D0684B90513464C45CB138410CDA4973EED0864C324D5BC727D61389842F533E927DA
16498E0A6BCA4FB432D31E426BEDA7DA1C320E36C9AD6271524027F6158F0EC000793EFD386C34FB
57C9C347CB409A705A6B3228A262E8375C44594E392FD6355347A0F8A1F216FA266CF0CCB8BE02EF
FF6357C8C7257F2BA6F8F031EFF5B22D3F6D600951A1F75249A9D2D3FFC3BE7D99E0BA68198C4FE1
2E203A94BB3F2CDFA984FB3F37DD27E6453ECFCA0FD5CC6BEF871135EABFEC2C8DE73F5E6271D69A
BFCBE9255BAE923B6E923AFE923AAE92339D245A09A3B64B49FC074EFA58906B2AC23BF9116A7F7C
63A69CD0F3FFD48C410C7B62974DAC58B38057D0E31F59125C907500C21198B2880A0E3B75C7EAA6
E6EC38EC6BFF780D521FE53424BD7E5EFC448C8C1F12A15926933179DC31F5944A9B3E32AFE96A65
A27AADE1D6A673B856652665D3A5357E262284FAE98CA2FB6A36FA97B49273B24B3195BDE992F3B1
AB8AAD33363D54033AE9DA61F1929D2C6B196160A0A47C068B1BA1F6E315CC986B503C0524CB0681
8A327A94398513326AAE28827D5ADFEAB2D212CC71E79754B2A9684D2B9421BC16B0F5DA3E943E44
9355E57AA0B51F4FD25D2E5205803575CF96B08E550C39D10760469836AB4FD1EFD6059B925421F5
818ECF921A44610060D9AFBEA4BF3448F1BD0FC3DF3DBF01874403107FB6AFB21B0162AEAECA6786
E77564E02D13866902B8B121BEDD78BAFEB35EA19E2EC5F1A10DE8FD66CF64917BF484F33ACD7E08
F15D37F29CD955FD35A796E5BD6FD12750F8B5FD66B2C91DDBE753400C1A2B8AD0FD534187FCAA43
FBE0D885CBA5DC51616D08D5AB174DB4F4C0FE12E2B5E1173D04401D8BF0E6FF9557D40165093AF6
2D9D0245A6B4EE9AD35AF55B5684A0525B2B784C64FC5FF2B112BEF994A3CA883F5D57F5D2E38688
07ACF75926ABB4A1950F592DC19BE02FD7C2B38565FE125D1A3356A6C2CC0D951DEBA60ECD8F82BD
C959916A666B06963D28C4E4FC351B0F928DC92AC99123422490AFBC5F018458930980EA055C58B0
9F0187D0C8FE285D8459F21F496EC929076FAE49B00F36177598DB68C0FA5102A80EEA2DDBC4F61C
1A6361E72C271350753F699BB89CBE58C9C7373E194B7A10A5389BC2F6B401DDEDE8EF8179201985
DD34F2805E8D0F0242277ECBDB602E549474A143B1105CF2EB7647AFB7A32105C32025C13798056D
E091DD7A0479B373B86F666CFE6FCF79C6EDE8E27018552D0E3168F1C09107832B6243A99D73A214
D0749D1BBB68AFB45F5C53F7F7902627757C7494EFE99C50615C7E9B1126164B9437D96912B2A1F3
3D7C49BFE06B74133E888AAA80111BD4C270210D077EA1E780086CA324999CF911995A9C5F75C470
7C4F11BBE66F5452D07500C14B12829F1B9EA3F6B933CC4E0B4CF11386099F35353BFE81DB2BC19F
8D27FC0A46BD1F115B1D926EB9F4374DAD5C53F5389BD52D473A896AD8B34D949C2C4DC63658FD5D
7CE9B54B5CC4DC6AA0DC14DF5CAD8F9C9BA6888DA6D72A0D649B64A9D2AD5B154B4E136C1513D53E
78C7D0D936BDFC4BAA80BF864A90151358FDC927085F3E5B756FB7113722AD8EF9378D5481E5A6E3
9FC6ED36B5543AB5371AA89988AC595BBE70148C8CDF50C01658A650EABBAA075C961F5838FE8EFB
B68DF87EB1FB10DE3033CB6A4B3FBB601F42A9DF4A3624B436BFB589DF5C6652788504CA1CA9FEB1
0465BD8540D59742D79D82366B8FF5F0A6437BA404BC798646745636C2CC781309322099F924C8BA
2C6016BBE03F034D9FC53F50513BF0B99B0E398C77F9E892C4B9FFE233F2E305FB35DC01F982137D
D099ABC0DAE5CFFDE1ABBE381E2AD150DBDC405F726FF185A96EA7BFD96390B77543EA123B677EF2
E6B6AEA531C6684FB49676320925B80BDD8416B908A6FE9AA4312A2A73B449DA9BEE023EDC6E221C
48C1EE26B4003933B8311D941325DCEA183F312669644FEECB96E12AA2B10AB57F39CF8850CD0975
3DFB43AA9CE60949F53708F5507EF9FEB4B7B18815C3C07DF91D2C03143EBAC1B8DCF730BD957457
6467607F165B8D616716E17CC450C2490B8CAAB18C1F86BC80B85525AB8E6064C497E5B9C7FA80C0
ED0C95C3515FCD25148E450B406DB9F4C59F6AD7E6324D49485588164993772457008A9FA82D7BB7
3A8C45D9B0F898F8DF7C907F4300FE43AD88606DA3BFE4BA5BD40C6ECE23907D78873C5E397B8279
E00085D40ECF92C79D867F545C3135ABB37DF220BF2BA67A02250A15DF34698A4B39E9596F878848
F1532FC901DB5E402DC09C4F4B4C0B7A3F7F609493E90C460FC02D6F7D40FBD5770B321F3139A7F6
BD7A6A0EC1B6307B0C41079E9220DF706DC2A35D56C1FC41FF368C63EA39F83ACD981EBE14B7C473
8FED7369F08C4A80794F5E2A3B4C0A2A0C1E99204981C4492082A2A709C87D55BC625E1BF1C9F938
ABDEBDAD1D1235C1EE5257D93E25BFBD6A658277B24CB24EFF8D32CD3BF9A99934F7944EF6E991DE
16C934B138689EF9D465D3B8FFA603F98277EC93DF428CCA3348E891ECD1ED119B47468F6A8B5467
119D47488F6C8B6474A8FD4474C8CF23A7467D1D423408F6E8F708F728D0A3448F748F769DDE98D0
A42A01A869ED2950EC8354A7BA2989F085AEBA4061C41A54E7C84B8783FE596F98EB529ADAED2775
287D60B53ACD93788199B24296C08FFDBB792EA884B480D9EF47E1DF4573A6162E55238C5E0B4E8C
1A651F7485A84A823ED6A2D08847DA08D283EA0E53E014168E052043E003528C53908E6C85549A1B
70D4E3784460E955686F44976954B40845A1C200FA7A7B4D59F7275CCA9FA72E95CE9D0BFADDD69D
95B69EE47125BE0AB77A6B0C1BCD0366E1BA1EDB12278F68B9B08DDB170636F5AA2CF240011BD529
EFE491126823FC3B41700174C77B2F6EE7D8363234ED830826C952A150199DC0473850417B05F264
261F6D53518A1038C9A004CA251FEF9305CDB56485B2A190DDAC8C005798F3E7E505D53092F6064A
3EC2514E44C842585CEA585A3342E8391C83CDFCC82E13E10EEC7AC25402C8EBC84D9304AF5A21D4
7481072D63063FEF58C8142B9ACBEB07AE7033FF81B8C99B3B8F5C5E1706BB0BC84CB05A64059F93
816CDE632DB0017669FDD30AEF78635D333D024A044B32D7947F4F66BA1754C0727BD9A1A80740E7
B6E52DD2027B2DFC16D616F27DAEB59ECE7EC3869087367B264C3137ED1D58A1C6481F6933C7BC04
87A72DD278A05D34985FC6194499D7AF4CD42D84C4B729ADB6CF490B0BE799E1C3463E904909CD8E
250005399A07BA71493B90495467702939397F396C6C1B862241806C5AEF78768742DC31C5405496
DA5887460F3E12303B3A4A575A7B9A682B9259C558C98FEAC1755AFF269EF3A3826B3E3AAC6C16D4
1F44A3DEED6F7E5ACB5D2C67637FAEEC5CEAEFBC9BCE9FFCCC2EB4B15B03FC93FA978F405BE65DC8
B1A35B021E85769578D4053038A68A0A55235F1A15182FA8A26EE0377B01F19C355A2D90A077495A
B2F629E7C954F426E03F76A8F6B8B3B7492F1D2F2495FD51DE00F5678AA8F4361D70650C333CB029
FEC455C8D518B0ED530A999E5D339D6DEA1A50B03A426C3672BDC0B3A927396981DEAE534A00E15C
432B991819E9DAF3D8D87CE04AA61E8E905A4D801C33CB488612B1AFCDAE0CCC8D59F21BA0F9FECB
39CD868F2DB70A354B7BCDED92EC0DCC90954C607FCBFD97738BED4956005C71ACCAEF2DC3C04225
8F967704FBB5C41FDEF901E5E308468FBE023EAEA1C87E88A03937A4AAEDBD39545EE8A517818DEB
89C0205360DB3980457DA06B665A3D6DF1B1FBC1B5ADD776CB1E16AD2955804311D82A955462C92D
A193DC032F00E43BB4A143792B1081713C1EB5BA409C573435DCD552FC707393ED43582A706F3812
1D5B95091B240B5E2E19E5E5F016CDD0CBC711BBA0BF7A36704FF30B8C2037AE0B22990CC84A71AA
5F4AADC8437E1EA44A4EB55E19D0539507534CF9A5DB69EF45BD67D44F180034FFF3307F0BC1E1B2
075039901591B98D9C9630BED6D2AF1939A3DC2F9F79F241A76A6F7401BFB8335A0B2E9CF2032FE1
450EC30AE7A4B34F8FE747FA20E7565EAC523BCFDCAD931F4A361E7BD1C1A325089F4AA4BA529115
905EE14EDE63955800F55C643ABB41309335AA5BFA3302CAC1B4ED7545A5341F06C518BFC8672555
7956A720499DC4781D5360B2603FC3F6B640BD683F87DB7AB58D8588BC1A499030B552DDE94188E8
7812C47429939BC1F699E1EE642303CE6DE8043BCF8D532DEB00F9864B27C5DDB84769BD2C45F9B9
844D8E42B80813366F366A2CC123BD9B1D3A3C10852B7B7438B9DBE6832AF219C0F8EEF368C60B43
C65C858BCD2295847132FA3901F5DBFA2F49E5F09C02E1B1886500210E10434287B206842500C8F1
8127B351A1AB0CB353C2FF58114B0668E90FD6974A79AC01F8AC8151C71D3A24882DCE04A0632330
05C6E67793808A0374475352D23DE285082C7C10F87A8F5E9358A85E7743EFAE962431037800C01A
00240400001402001200000050726F7465637421A9D470108EE86C117C4F3211C07772FBAF7804C1
6DABA408EDE9376AD6332E8B5FCB81F198E83190C0F7CAC2B69E58C0883E9A09D28C5D5E547108F6
36F0BB696D0F9AB391AE7EB4F13A6B951FCD44FC49EB08180FF50E2D57E4D7AF6110CF70E4283129
25C27364884E467063D5EC1674323666D4F74D9A946A91A33567C4AFCCDA048020993297214807C7
75CBF1D7B8D03D4E919655D35B5DD73BCC3D860BB01A6FFC79A6176FD33ACA2F45FB4C7546F21565
B6E15A179E6F907E22D13AC9416100DBC5DD32F5FF4ED8F8F8294A98E7A86C3AD224038136554E38
F4BB74D8DDDF9704DB35F2EBFBB64B4CCDDBEA3926EA061B81F051E8ED724E2D53D2A3903C0C0DC7
1092E10D961BB4CD52DC842F5422F9860430F0C11253BABD0127D27973776BF6E1E7BF83828CEBA6
9665AC01FAA5E1D00E572B4A42D801B07CAB0F6E0F2110CD7F14237D6C807D09EFF610189D81393F
026D72FC418D2C1DD5E2FC8E42BBCD44B06135875B96CABFFBAAEF39C950FDF9CE3B14FD0F2B2FFA
A31750C82AB9E5C86758D9436880488CEFD601C405D3E8F83B3D6A849BEC073D53F3CF3EE5B69129
E90A4B8B941C7013599758F00C477AB08C4ED255D44CEC8FB9F5A1D2751EB49A350B16061DF6CEA2
D2E3911E860F8A29FE459D66AB17930EFE6C96886E1E6C9F1028EDD82A287A3094FEBC71484714D5
C5C5145FD97EDF205773E13B9C4BCC5801461377EB72925B7716EB36C55D0C8CF6AA04B7F65FE373
5897D853429E70D97B1B412FB2CBD1259CC3E4BDAC6BF268A9318A9D6B426510899ACC5D7A2A2E64
AE4E4AB4C36343B82B8803790E8EC70C50E4555A52D9223A0E01652B8BD8E90554FD0D9788725464
2F0BA0F2433089368E5F88C993D261C10E3B931085C842FF91758F679E855BB7A1FE6BCB1892A6A3
4EE6C71CA68CF65BDFAD713869DFD1F9E75CEAE1B3E7A8D04F05B1296EAC575858F8BB1845D796BA
2FB9DE657F71AA747FC9002A081BEBF23D3EFE6B60DD5EC63A7D26126C2E77C68CCC63424EDA72E5
4787071BA8CBBDFA2A746A48F50354A0D2EA61A8D89D5D247F2C994860F4934EA75E4FD964E21F3F
4542C75D4AE2DE1E92C88B6E5DAF239A6C87C887290852B1DF258AF8906C288DE423231345DEA45E
E0664BBAFD21F7492AB5E6251E71B2188453FBC6802044BCDBE7F6A4A012946A7076AB547D434738
1268E35250CE1E8568D161E45829F6B0C7EC0CEAEDD367AB5208B9DEE4B188F79ED74EDA03FF9774
D5DD0BF264D9F957341BDB6D5DB8613913CD3E1E37775460CE08DADAAF07C1549C6B0FF61C08E4AE
CACB2ED02C019B5F0E2A8D60F1492FBC3CC087ECE158D53A81ED758C98E61B1A8A7C04563713E487
BDA5D10D5097BD48E2E838537754808BDFF1904562ED11466FF25C148BD56097B83565C501B33EB6
35EAE4324B844973AE5220482149936A34F9025BAC5C47C0148C37F5BD9F1D91499246A14FCA2DBF


Comments :


degac(Posted 1+ years ago)

 Question: do you know there are many free service to host files?Dropbox, Mega, Box and so on...


RGR(Posted 1+ years ago)

 Do you really believe that the way you provide these programms is accepted by many users? I usualy try every new entry in the code archives ... if I see your bulk of Hexnumbers, look into the code and see that its not an easy load and run thing I just ignore it ... maybe I am the only one. But I doubt that.In my view this way of providing software and objects(?) spoils the code archive ...Don't get me wrong. Your intention and effort is great ... its just the wrong way to do it ...


RustyKristi(Posted 1+ years ago)

 I think this is a good idea and another way of preserving great code. I was spending my time browsing the archives for the last few days and apparently some of the links with zip/rar archives are already broken and have not been updated or brought back for archiving. The main intention here is making sure his or other author's code will be available the same as the server hosting this site.Kudos to you Mikorians and thank you for this resource!Rusty


GW(Posted 1+ years ago)

 I agree, the Code archives are loaded with broken links resulting in useless posts.  This method isn't ideal, but its better than broken links and vanishing authors.


Rick Nasher(Posted 1+ years ago)

 So true. There are loads of broken links here. Those file hosting sites are never permanent enough, so I think this is a good compromise. A pity BRL doesn't provide a space for uploading files such as dll's and rights free media, but I can understand as the security/monitoring can be quite a hassle of course.