RE: A86: trig in ASM (vectors and raycasting)


[Prev][Next][Index][Thread]

RE: A86: trig in ASM (vectors and raycasting)




ok, thanks.
			-Ahmed

--
Ahmed El-Helw
ahmedre@bellsouth.net
http://asm8x.home.ml.org
ICQ: 3350394

-----Original Message-----
From: owner-assembly-86@lists.ticalc.org
[mailto:owner-assembly-86@lists.ticalc.org]On Behalf Of okteam
Sent: Friday, July 24, 1998 11:47 PM
To: assembly-86@lists.ticalc.org
Subject: RE: A86: trig in ASM (vectors and raycasting)



For(variable,begin,end,step    the variable starts at begin, and goes up by
step until it is greater than end





At 11:38 PM 7/24/98 -0400, you wrote:
>
>pardon my lack of basic knowledge, but what does that for loop do?  I mean,
>what does it mean, loop till you get to 360 5x? :P  Also, how do you switch
>modes in asm.. i think this might not be too hard to do.. i need this info
>too :)
>					-Ahmed
>
>--
>Ahmed El-Helw
>ahmedre@bellsouth.net
>http://asm8x.home.ml.org
>ICQ: 3350394
>
>-----Original Message-----
>From: owner-assembly-86@lists.ticalc.org
>[mailto:owner-assembly-86@lists.ticalc.org]On Behalf Of
>BIOSERRORS@aol.com
>Sent: Friday, July 24, 1998 11:26 PM
>To: assembly-86@lists.ticalc.org
>Subject: A86: trig in ASM (vectors and raycasting)
>
>
>
>I've done some work in BASIC...I've made a raycasting engine that turns a
>2-d
>matrix (the map) into a 3d world....very, very slowly of course.  I want to
>convert this to ASM.  If you want an ASM program to use degrees fast, you
>need
>to make a table of sine and cosine values (sin 1-360 and cos 1-360).
>
>Here's a simple program in BASIC that simply makes a circle by plotting
>several points along the rim of the circle:
>
>:Degree
>:AxesOff
>:ClDrw
>:FnOff
>:64->X
>:32->Y
>:For(A,1,360,5)
>:X+cos A->X
>:Y+sin A->Y
>(In Radian mode, use X+cos ((A*[pi])/180)->X and sin Y+((A*[pi])/180)->Y)
>:PxOn(iPart Y, iPart X)
>:End
>
>You can also change this program to effectively make it plot a
>vector....simply find the X and Y displacements based on the angle you want
>the ray to go off in, and use a loop to increase the X and Y variables with
>the displacement values. (This is used in raycasting engines to record the
>distance to the nearest wall based on the player's position.)
>
>I don't have enough knowledge of z80 ASM to know how to convert this to
ASM,
>but it should be very easy to do...the hardest, most agonizing part is
>getting
>the sin and cos values into tables...I'm make a header file that contains
>the
>tables...so that everyone can just use the #include pre-processor command
to
>use the tables in their programs....because the table will have 1080
entries
>in it, I'll be making a program in C++ that does this for me.  In fact, I
>already have this done, but I don't know how to output values to a file.
>(In
>C++).  If anyone knows how to output text and values to an external file in
>C++, PLEASE let me know ASAP!!
>
>I hope that someone out there will use this knowledge to make a doom-style
>game...You can find more information on raycasting techniques, drawing
>walls,
>floors, ceilings, texture mapping, variable wall hieght, and anything you
>ever
>wanted to know about raycasting at:
>
><A HREF="http://www.ben2.ucla.edu/~permadi/raycast/raycidx.html">
>http://www.ben2.ucla.edu/~permadi/raycast/raycidx.html</A>
>
>It doesn't contain any code, it's all about concepts, and it EXTREMELY
>helpfull.
>
>I REALLY, hope that someone will use this valuable information to make a
>doom-
>style game in ASM for the ti-86..  I'm sure someone will...eventually.
>
>Hope this helps!  I know wish I knew ti-86 ASM better!
>
>-Dave
>
>P.S. -- If someone would like to help me learn ASM, I'd be very grateful!
>Thanks.
>
>
>



References: