From: chrisg@cbmvax.commodore.com (Chris Green)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: New hardware reference guide?
Date: 13 Nov 92 13:35:17 GMT
Reply-To: chrisg@cbmvax.commodore.com (Chris Green)
Organization: Commodore, West Chester, PA

In article <1992Nov13.085247.58456@qut.edu.au> podesta@qut.edu.au writes:
>Underestimate the performance of the system routines?????????
>Come on, is that possible. True, that 2.x is much better than 1.x and
>3.x sounds great, but there's still NO way your gonna write a game
>like Shadow of the Beast III that will run on a 1meg A500 using system routines!

	An A1200 isn't a 1meg A500. AGA chip specs will in no way aid
in writing demos and games that work on 1meg A500's.

>And to compete with the Console games, and to get people to buy your games,
>and just to feel proud of your games, you need to target that kind of level
>of speed, graphics and gameplay.

	Once speed is at an acceptable level, and graphics are good
(which is to a large degree determined by the skill of the artist
drawing them, rather than which bits are set in which registers),
work spent on speed at the expense of work spent on gameplay is
wasted and can easily translate into lost sales. In fact, a good
marketing tie-in is worth more to a product's sales than any
AGA register bit.

	Also, isn't it kind of hard to compete with the people using
the OS? Developers using screens & viewports for their games already
have all their stuff working in 256 colors simply by changing
a depth of 5 to one of 8, and can already be started on re-doing
the art. Hardware hackers have to go back and re-write all of
their routines. And don't think that it's simply a matter of setting
the right bit in the right place. None of your ECS scrolling and copper
routines will come close to working without being re-written. It
took more than a man-year to get all of the view creation stuff
(arbitrary overscan, all resolutions, scrolling, color table loading,
and support for 1x,2x, and 4x fetch modes) working perfectly. And we
had full access to the people who designed the chips, schematics of
the chips, and logic analyzers monitoring pins which let us see the
internal operation of the fetch engine. We also had an entire PA
department, more AGA machines than any game company would have, 
and the whole commercial developer community to make sure we got it
right. To throw all of this away and start from scratch is hardly
a competitive action.

> There's no market for games and demos that
>only run on 68020 machines and above. 

	Than there's no market for AGA games and demos. So why do you
want the register list?

>In demos??? They must be pretty lame if some hardcoded effects are slower than
>the system software.
	I've seen plenty of demos, particularly 3d ones, that I
could have coded faster using OS routines. Some of these 3d
demo coders seem to have spent more time figuring out how to draw lines
using the blitter than they did learning the 3d math, and use
ridiculously inefficient methods.

..Remember that demos and games can use the fact that
>they are not generic - we don't have to worry about window clipping or
>multiple tasks or I/O because these are all controlled.

	The OS doesn't worry about clipping either. One tst.l of rp_Layer
and it branches to non-clipping versions of the drawing routines. And if this
is too slow, than its perfectly alright to write directly to the bitplanes
with the CPU or blitter, if you're careful.
	Multiple tasks don't matter either. A task running at a priority
above input.device will get all the CPU it wants.



-- 
*-------------------------------------------*---------------------------*
|Chris Green - Graphics Software Engineer   - chrisg@commodore.COM      f
|                  Commodore-Amiga          - uunet!cbmvax!chrisg       n
|My opinions are my own, and do not         - icantforgettheimpression  o
|necessarily represent those of my employer.- youmadeyouleftaholeinthe  r
|"A screaming comes across the sky..."      - backofmyhead              d
*-------------------------------------------*---------------------------*
Newsgroups: comp.sys.amiga.programmer