Path: chuka.playstation.co.uk!scea!peter_alau@playstation.sony.com From: Gerrit Goossen Newsgroups: scee.yaroze.programming.3d_graphics Subject: Re: GsLinkObject4 Confusion - On to GsSortObject4 - And Now CW Asm Date: Mon, 31 Aug 1998 09:48:30 -0400 Organization: SCEA News Server Lines: 45 Message-ID: <35EAA9A9.782E@funnytown.com> NNTP-Posting-Host: 38.165.241.13 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 3.01-C-MACOS8 (Macintosh; I; PPC) >Gerrit Goossen wrote: > >> >Ho hum... I need direct GTE access and the ability to sort 2D primitives, and I >> >need it NOW! >> >> I actually spent quite a bit of time trying to access the GTE with >> inline ASM in CW, but for some reason CW doesn't want to let me do it! I >> wonder if this is also a problem with GCC, although it doesn't really >> matter since I'm on a Mac anyway... > >You cann't use GTE inline from the Yaroze version of CW. Or the >Yaroze GNU either. I love it when I do stuff that people tell me isn't possible! As it turned out, the only reason my code was crashing was because I wasn't putting a final nop after ja'ing. *None* of the examples in the CW manuals do this (and so they won't work as they appear in the manual!) and if I had been using GCC I believe it would have added this for me (?), but I finally I noticed that Metrowerks used an extra nop in _psstart.c and decided to give it a try... (So I'm relatively new to asm :^) Anyway, for any other members interested in R3000 ASM or using the GTE directly, here are a few places you might want to check out: - Check out the RC3041 manual for plenty of info that's "mostly" compatible with the R3000. (Anyone know where to find the R3000 manual?) - Page 13 explains register assigments which are of course extremely useful even though CW doesn't always appear to follow them (!?) - A "sketchy" site with valuable info on how to access GTE functions. (From my understanding of our Yaroze license, we are free to get info from sites like these we just can't contribute to them. Sounds fair to me!) FWIW, I've been able to speed up my gouraud fogging from over 400 hsyncs for 500 primitives to under 250 hsyncs. It's still too slow, but I'm making progress. If anyone's interested in the code that does this, say the word and I'll be happy to post it here. (*Especially* if you think you might be able to help me speed it up. There's *plenty* of room for optimization. ;) - Gerrit