DQBRel Notes!!!!!

Pls. MAXIMIZE and DO NOT use WORDWrap.

Developed by Richard Eric M. Lope aka Relsoft
e-mail: vic_viperph@yahoo.com

March 21,2002
11:00 PM

Disclaimer:

	I didn't have permission to add my routines to DQB but I think this will "breathe" a 
new life to DQB as it's notorious for being slow on its sprite routines.  the bad news is,
this will probably "Kill" my library(RelLib).  But I don't care as long as you make some kick-ass
games and utilities with this and DQB.  Use/Abuse this at your own risk.  This is FREEWARE, but
if you really wan't to donate something to me, my address is:
Florvel Homes, Buray, Oton, Iloilo, Philippines.  I would like it if you'd send me your old
computer instead of cash:).  I included the Object files so that you could customize your own
LIB. I also included the ASM source so that ASM newbies like me can learn to make their DQB
extenders and that they may learn ASM. For any routines you want added pls Email me.  I'm also
at the QB45.com forums>Quickbasic site. And from time to time at the Shared QB chatroom at 
LEAHCIM.
	You are NOT obligated to mention my name on the credits but it would be nice if you do. 
You could also send me a link to your site if you have and your games,demos,etc that uses this 
routines. Blah,blah,Blah.

History:

	I made this because of Typosoft's interest in a DQBput replacement since DQB's sprite
routines are not fast enough.  And since I like his projects and its summer, I have lots of
time this summer, I made it a point to make RelSprite, etc. DQB compatible.
	I thought it would be a monumental task until I read DQB's source code.  It turned out
that I only have to do a call from a FAR procedure(GetLayerSEG) and add some Externals(Global)
in  my routines to make them work with DQB.  And well, everything went well (though I crashed
my computer the first time I tried it. Error=I mistyped my stack directive.) Silly me.
	I haven't tried bechmarking this against DQB but its as fast as RelLibs routines
(this is RelSprite Right?).  In fact I didn't notice any speed difference using this with
DQB,CosmoX, or RelLib on my 486. So 486 and 386 users, go ahead and make your pixel*pixel RPG now!!!!
LOL.

This archive includes:

1. All the OBJ files
2. All the ASM files
3. A sample program
4. DQBREL.QLB =DQB.QLB+RelLibs routines
5. DQBREL.LIB =DQB.QLB+RelLibs routines
6. DQBREL.BI =DQB.BI+RelLibs routines
7. What you're reading right now(this file)


Added routines to DQB:

Notes: All compatible with DQB's Segment addressing scheme(AUTO) so you can use this like you
	would any DQB routine.;-). Plus they're a lot faster than DQB's routines even on gamma
	and Translucency.

Routines with *** need a gradient palette to work.
Also DL RelLib(plug) if you want to understand how to use this routines fully.

1.
DECLARE SUB RelSprite (BYVAL Layer%, BYVAL X%, BYVAL Y%, BYVAL SPRITESEGMENT%, BYVAL SPRITEOFFSET%)
	Description: Draws a Sprite on Layer at coordinate X,Y.  Skips color 0
			Compatible with QB's Get routine :)
	How to Use: RelSprite VIDEO,10,10,VARSEG(SpriteArray(0)),VARPTR(SpriteArray(Offset))  
			*Offset is the Frame of the Sprite for animation. Puts a Sprite at coordinate 10,10 skipping color 0
	Notes: Try and test this againts the lib your using to see which is faster.  This one is extremely fast! Used for games. :) 
		*SUPPORTS CLIPPING!!!!!
2.
DECLARE SUB RelSpriteSolid (BYVAL Layer%, BYVAL X%, BYVAL Y%, BYVAL SPRITESEGMENT%, BYVAL SPRITEOFFSET%)
	Description: Draws a Sprite on Layer at coordinate X,Y.  Solidly
			Compatible with QB's Get routine :)
	How to Use: RelSpriteSolid VIDEO,10,10,VARSEG(SpriteArray(0)),VARPTR(SpriteArray(Offset))  
			*Offset is the Frame of the Sprite for animation. Puts a Sprite at coordinate 10,10 
	Notes: Try and test this againts the lib your using to see which is faster.  This one is extremely fast! Used for games. :) Also 		try to see the ASM source(Asm guys) for moving Dwords even on ODD width Sprites without using a JUMP. :) I 		don't know if someone already knew the algorithm I used with this(Xloop) but it will be nice to know. 
		*SUPPORTS CLIPPING!!!!! As fast as DQBFput.
3.
**DECLARE SUB RelSpriteTrans (BYVAL Layer%, BYVAL X%, BYVAL Y%, BYVAL SPRITESEGMENT%, BYVAL SPRITEOFFSET%)
	Description: Draws a Sprite on Layer at coordinate X,Y.  Skips color 0 and draws it TRANSLUCENTLY!!!
			Compatible with QB's Get routine :)
	How to Use: RelSpriteTrans VIDEO,10,10,VARSEG(SpriteArray(0)),VARPTR(SpriteArray(Offset))  
			*Offset is the Frame of the Sprite for animation. Puts a Sprite at coordinate 10,10 skipping color 0
	Notes: Cool for See-Thru sprite FX, Ghosts, translucent map Layers,Lasers...ETC. Still very Fast(Used in Space Impact)
		*SUPPORTS CLIPPING!!!!!
4.
**DECLARE SUB RelSpriteGamma (BYVAL Layer%, BYVAL X%, BYVAL Y%, BYVAL SPRITESEGMENT%, BYVAL SPRITEOFFSET%, BYVAL GammaVal%)
	Description: Draws a Sprite on Layer at coordinate X,Y.  Skips color 0 and draws the sprite depending on the value of 			GammaVal (Neg(-)=Darken,Pos(+)=Lighten)
			Compatible with QB's Get routine :)
	How to Use: RelSpriteGamma VIDEO,10,10,VARSEG(SpriteArray(0)),VARPTR(SpriteArray(Offset)),6
			*Draws the Sprite at 10,10 lightening its colors by 6 gamma displacement
			*Offset is the Frame of the Sprite for animation. Puts a Sprite at coordinate 10,10 skipping color 0
	Notes: Used for Shadows and ghosts. Anything you want! :)
		*SUPPORTS CLIPPING!!!!!


Pls see the example program(Zelda20.Bas) for more details.........


Greetings to the AURA FLOW TEAM!!!!!

Status: Currently Developing Frantic Journey.

Eero Pitkanen aka EEBRO
Adigun Polack
Bobby Leigh aka Beta_SS
Anya Therese Lope aka Shreck

Hi to:

Brendan Urquhart aka WildCard
Alan O'Hagan aka CGI Joe
Francisco Soto aka Bobby3999
Giancarlo Berardi
Andre Brown aka Kackurot
Lachie Dazdarian
Luis Espinoza Aka Laffin
MasterMinds Software's Jake,Mr. Moose, Nory-B and Chaotic
L_O_J
Richard Kelly
Joakim AR
Angelo Motolla
Blue Castle Productions' Daniel Wilfong,Jtm,Jocke the Beast
and to all those I forgot to mention, sorry its getting late and I have work tomorrow.
