http://www.youtube.com/watch?v=ALLAUaVoQC0&feature=channel_page

dunno if youd need a dma for this in mode1 or it'd b n e easier in mode2
will try mode 3 next then if anyone knows an easy to use interlace routine
would the second interlaced screen be one pixel line below the first -
is that how it works its alternate scan lines

2009/8/19 Roger Jowett <rogerjow...@gmail.com>:
> but surely the code can be fed into the samc compiler no - sam vision
> erm it looks close?!
> are you sure that as teh filled in cube rotates it wouldnt be easier
> to drop to mode1 couldnt you fill 64 pixels of colour witha single
> byte attribute square only need to work out how many you could get
> away with seems a bit jerk how many frames does it take to draw?
>  have you tried the echologia demo with the dma and mb-02+ in real
> spectrum  - not sure if they are using the dma tah much some models
> take 3 to 7 frames to draw
> wouldnt a sam dma be a wee bit faster than the quoted 17jb per frame
> velesoft reckon the dma datagear interface handles in on128k
> also do you need masterdos to detect an external sam - its only
> another 3mhz but what about those register hungry emulators like the
> apple and oric or whatever its called oreo - isnt that a biscuit?
> did you catcht eh text font.... its taken me a loooong time
> silver paint tonight pressure sensitive keyboard membrane here i come!
> - didnt realise the 128keypad had a pic controller in it dont they go
> up to 80mhz! theres development kits in  maplin £44 or build it your
> self for £25ish grade b=£20
> http://www.maplin.co.uk/Search.aspx?menuno=12483
>
> usb...
>
> http://www.maplin.co.uk/Search.aspx?menuno=12545
>
>
> 2009/8/7 Simon Cooke <si...@popcornfilms.com>:
>> It's still pretty much just a quick sin/cos lookup for the euler angle
>> calculation. As you say, you just store it in a form that hits 0 at 0, and
>> 2pi - epsilon at 65535. (Or something similar), and then just do a lookup.
>> That part's fast.
>>
>> Quaternions... The biggest advantage is that you can interpolate between
>> them - which is necessary for skeletal animation. There are a number of
>> disadvantages though - the need to occasionally renormalize them being a big
>> one. (You're not actually gaining any kind of stability there per se; all
>> you're doing is trading one numerical inaccuracy for another).
>>
>> Here's a case against them:
>>
>> http://www.gamedev.net/reference/articles/article1199.asp
>> http://www.somedude.net/gamemonkey/forum/viewtopic.php?f=12&t=380
>>
>>
>> http://www.sjbrown.co.uk/2002/05/01/quaternions/
>>
>> Note: it may make sense to handle your camera as a quaternion, vs. a
>> rotation matrix for local->worldspace transforms, based on the cost of
>> operations.
>>
>> If you decompose your matrix into all of the pieces you need to calculate
>> when you build it, and keep that alongside all of the pieces you need to
>> apply when you apply it, then you might find more optimization opportunities
>> - especially if you're not performing more than one rotation at once.
>>
>> But ultimately, the name of the game here is to go as far as possible, so
>> it's all going to come down to your use cases.
>>
>>
>>
>>
>> -----Original Message-----
>> From: owner-sam-us...@nvg.ntnu.no [mailto:owner-sam-us...@nvg.ntnu.no] On
>> Behalf Of Thomas Harte
>> Sent: Wednesday, August 05, 2009 4:13 PM
>> To: sam-users@nvg.ntnu.no
>> Subject: Re: Hi - just checking
>>
>> They're in some format or another that I don't recall offhand, but is
>> lined up so that a full circle is a nice round binary number for the
>> obvious range fixing optimisation. But it's not just a quick sin/cos
>> table lookup unless you're rotating around one axis only. See, e.g.
>> http://www.manpagez.com/man/3/glRotatef/ (the man page for glRotatef)
>> - clearly there's a lot more going on there than table lookups.
>>
>> Of course, I am taking note of coherences. If the angles associated
>> with an object do not change from one frame to the next, the source
>> matrix is not recalculated. This optimisation postdates the version of
>> my code that has already appeared on Sam Revival, but predates the
>> next version (which is a better optimised version of the code shown in
>> my video http://www.youtube.com/watch?v=j0xN_Mi3B_I)
>>
>> As I've posted to this list in the past, I use something vaguely like
>> SIMD to multiply a 2d vector by a scalar - the relevant part of the
>> scalar sits in the accumulator and is shifted there to make the
>> add/don't add decision in the standard binary multiplication formula,
>> meanwhile the 2d vector sits with the work going in for one component
>> occupying BC, DE and HL, the work for the other occupying BC', DE' and
>> HL'. Hence I get a substantial saving on multiplying the two vector
>> components by the scalar separately.
>>
>> Naturally, I have a classic y = f((x^2)/4) table for the limited range
>> multiplications (related to the maximum size an individual object may
>> be).
>>
>> I assume your point about not accumulating transformations in matrices
>> effectively means that you agree that quaternions are useful beyond
>> interpolation and animation (which I'm interpreting quite narrowly to
>> be the traditional skeletal type, not broadly to be any old moving
>> image).
>>
>> Anyway, hopefully I'll be able to get myself in gear for a source
>> release at some point in the near future, then you can rip it apart.
>> It's all geared up to be trivial for other (assembler) coders to use
>> to produce their own programs, handling triple buffering and frame
>> rate compensation with very limited need for work on the part of the
>> programmer (which neatly means that all my code scales really well
>> from a normal Sam to a Mayhem or otherwise accelerated machine), etc.
>> I tidied most of it up for a release quite a while ago but decided to
>> switch to Jam rather than sticking on pyz80 because a lot of stuff
>> would be substantially more compact and more readable with proper
>> macro support. I also would much rather that the demo was seen first
>> on Sam Revival rather than on the internet, both as a pathetic attempt
>> to support the publication and because it looks much better on a real
>> television. Never found time to convert it though, so it'll be a pyz80
>> release.
>>
>> Actually, the demo on the previous Sam Revival was explicitly flagged
>> as PD, so I'll upload a DSK of that demo somewhere once the next
>> edition is out. I think I mentioned every Sam program I've written in
>> the SR article; you can see most of them very briefly in
>> http://www.youtube.com/watch?v=kr_Lz98qVjE&feature=channel_page
>>
>> On Wed, Aug 5, 2009 at 10:16 PM, Simon Cooke<si...@popcornfilms.com> wrote:
>>> Hmmm... what form are you using your Eulers in? If it's radians, it's not
>>> too bad - just a quick sin/cos table lookup. And you only need to do it
>> once
>>> per object if it's a simple rigid body.
>>>
>>> The trick with making matrices numerically stable is that you don't ever
>>> want to do a stepwise transform on an object - you regenerate the matrix
>>> from scratch each time. (This is one of those things you never really see
>> in
>>> practice; most engines split out the rotational transforms and keep them
>>> separate, using either an axis-angle representation, quaternions, or in
>> some
>>> bad cases, euler angles [this is what Unreal uses btw]. That way, you keep
>>> fidelity - or at the very least, you don't care too much about
>> inaccuracies
>>> as they come in - you can just ignore them if your object is rotated a
>>> little off; it's not a culumlative error).
>>>
>>> Assuming no scaling or shear, just rotation and translation, your
>>> translation is the rightmost column of numbers in the matrix. If all of
>> your
>>> objects are pre-scaled in memory to the right size, all you have to do is
>>> apply the rotation and translation in order to each of the points.
>>> Screen-space projection is a little more difficult, but that one you can
>>> precalc all the divides in.
>>>
>>> On machines without SIMD or dedicated 3D instructions (such as the SAM),
>>> it's nearly always best to break out the matrix into individual linear
>>> equations, take the common pieces and only calculate them once, and then
>>> operate on them that way.
>>>
>>> --
>>> Simon Cooke
>>> Director of Engineering / Business Developer, X-RAY KID STUDIOS -
>>> www.x-raykid.com
>>> Founder, Popcorn Films - www.popcornfilms.com
>>> Cell: 206 250 7892 XBOX Live GamerTag: Spec Tec
>>>
>>> -----Original Message-----
>>> From: owner-sam-us...@nvg.ntnu.no [mailto:owner-sam-us...@nvg.ntnu.no] On
>>> Behalf Of Thomas Harte
>>> Sent: Wednesday, August 05, 2009 5:14 AM
>>> To: sam-users@nvg.ntnu.no
>>> Subject: Re: Hi - just checking
>>>
>>> That's not entirely true. Matrices are numerically unstable, so the
>>> cost of ensuring they remain orthonormal when applying consecutive
>>> local transforms in a game such as Elite is substantially greater than
>>> the cost of ensuring that a quaternion remains of unit length.
>>>
>>> I make it 8 multiplies, 3 adds, 1 square root and 1 divide to fix up
>>> numerical error in a quaternion. Conversely, I get 36 multiplies, 21
>>> adds, 3 square roots and 3 divides to fix up an orthonormal matrix.
>>>
>>> Quaternion to matrix is 10 multiplies, 6 shifts and 14 adds. So the
>>> way I calculate it, you can fix a quaternion and convert it into a
>>> matrix in less than you can fix up a matrix. Furthermore, quaternion
>>> composition is 16 multiplies and 12 adds, whereas matrix composition
>>> (with assumptions about the bottom row of a 4x4) is, ummm, at least 36
>>> multiplies and 18 adds. And that's with the translation component not
>>> completely factored in (I'm reading actual code off screen and have
>>> optimised the translation out of this particular batch).
>>>
>>> Elite is also a perfect example of when Euler's aren't fine, even if
>>> they didn't produce Gimbal lock, as all rotation is around local axes.
>>> And besides that, Euler angles always have to be converted to some
>>> other form before they can be applied to arbitrary geometry. Matrices
>>> require no further transforms.
>>>
>>> On Wed, Aug 5, 2009 at 2:12 AM, Simon Cooke<si...@popcornfilms.com> wrote:
>>>> You only really need quaternions if you're doing animation or
>>> interpolation.
>>>> If you can live with the gimble lock, euler's fine.
>>>>
>>>> -----Original Message-----
>>>> From: owner-sam-us...@nvg.ntnu.no [mailto:owner-sam-us...@nvg.ntnu.no] On
>>>> Behalf Of Thomas Harte
>>>> Sent: Tuesday, August 04, 2009 10:05 AM
>>>> To: sam-users@nvg.ntnu.no
>>>> Subject: Re: Hi - just checking
>>>>
>>>> Am I replying to the correct thread? I don't know. But I've had the
>>>> opposite experience to a bunch of people here, having become
>>>> substantially more busy in my work than I was even just a few months
>>>> ago, squeezing the SAM temporarily out.
>>>>
>>>> A version of my vector 3d-stuff-as-a-library-for-others was all but
>>>> finished several months ago, I'll endeavour to get that out, though it
>>>> still has the awkward limitation of doing rotations with Euler angles
>>>> only - which may be less efficient and is certainly more limiting than
>>>> special orthogonals or quaternions.
>>>>
>>>> I'm still thinking about smart ways to optimise the reverse face
>>>> stuff. I need to get something hierarchical or otherwise group-related
>>>> in there; checking every single face is obviously not the optimal way
>>>> to proceed. I guess what I'm looking for is some sort of bin-type
>>>> mapping to the surface of the unit sphere that allows all the points
>>>> on a particular hemisphere to be isolated from the majority of the
>>>> points on the opposite hemisphere. Or, you know, something at least a
>>>> lot like a sphere. Though I'm not sure any sort of lookup into
>>>> something a lot like a sphere would help much as it'd need to be
>>>> indexed by a three-tuple.
>>>>
>>>> I guess a good broad sweep would be to mark each face according to the
>>>> visibility of the faces of a bounding box - if a face on the real
>>>> model points away from the face on the bounding box then it definitely
>>>> can't be visible if the box face is. Or something like that.
>>>>
>>>> I'm going to stop thinking aloud now...
>>>>
>>>> On Tue, Aug 4, 2009 at 10:22 AM, Steve Parry-Thomas<morriga...@aol.com>
>>>> wrote:
>>>>> I guess when the clocks go back in October SAM users will hibernate over
>>>> the
>>>>> winter until next August!
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> From: owner-sam-us...@nvg.ntnu.no [mailto:owner-sam-us...@nvg.ntnu.no]
>> On
>>>>> Behalf Of Ian Spencer
>>>>> Sent: 04 August 2009 08:04
>>>>>
>>>>> To: sam-users@nvg.ntnu.no
>>>>> Subject: Re: Hi - just checking
>>>>>
>>>>>
>>>>>
>>>>> Wow, I just sent the checking mail to see whether something was wrong
>>> with
>>>>> my subscription to the group and it seems it was like poking a stick
>> into
>>>> a
>>>>> hornets nest (in a positive sort of way) - over 40 mails in the last few
>>>>> days on the group. It's just great to see everyone is alive and kicking
>>>> out
>>>>> there.
>>>>>
>>>>>
>>>>>
>>>>> Ian
>>>>>
>>>>>
>>>>>
>>>>> ----- Original Message -----
>>>>>
>>>>> From: Ian Spencer
>>>>>
>>>>> To: sam-users@nvg.ntnu.no
>>>>>
>>>>> Sent: Friday, July 31, 2009 4:10 PM
>>>>>
>>>>> Subject: Hi - just checking
>>>>>
>>>>>
>>>>>
>>>>> Not heard anything on the group for quite a while so just thought I
>> would
>>>>> send a 'test' to check it's not me that's got a problem and say hi to
>>>>> everyone.
>>>>>
>>>>> I know you've all taken your Sam's to the beach and so no activity on
>> the
>>>>> group.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Ian
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>

Reply via email to