Path: chuka.playstation.co.uk!news From: Chris Chadwick Newsgroups: scee.yaroze.programming.2d_graphics Subject: Re: CLUT troubles! Date: Sat, 02 Aug 1997 12:20:01 -0700 Organization: PlayStation Net Yaroze (SCEE) Lines: 268 Message-ID: <33E38861.2EC9@dial.pipex.com> References: <33E1AB7A.1DEE@dial.pipex.com> <33E1CBFC.42D@interactive.sony.com> NNTP-Posting-Host: am080.du.pipex.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------1105ACA5A42" X-Mailer: Mozilla 2.02 (Win95; I; 16bit) To: developer support This is a multi-part message in MIME format. --------------1105ACA5A42 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit developer support wrote: > > Chris Chadwick wrote: > > > > Can anyone *please* explain what's happening here: > > > > I have a simple 8-bit (256-colour) TIM displayed as a > > sprite. I want to copy new CLUT entries into the > > 256-colour CLUT associated to the sprite by using > > MoveImage(), which works when I change CLUT entries > > 0-15 (inclusive), but I can't seem to over-write > > entries 16-255. The same is true if, for example, > > I use ClearImage() to over-write each CLUT entry > > in turn by pressing a joypad button: I'm able to > > change entries 0-15 but anything else is ignored. > > We've not come across this, and have to trouble changing all the CLUT > values. Only thing I can think of is that you haven't called DrawSync > after the MoveImage. If you want the CLUT to take effect immediately the > DrawSync is crucial. > > > > > I've printed all the relevant variables as I go and > > all seems fine. I've even used a 'test' TIM which > > simply shows blocks of all 256 colours in the CLUT - > > using the above example, as I keep pressing the button > > each colour changes as I'd expect until it gets to > > CLUT entry 16 then, nothing! > > > > Another oddity I discovered is that if I place the > > CLUT with a tpage X offset other than 0 (i.e. not > > aligned with the left-hand edge of the tpage) then > > simply displaying the sprite causes all colours to be > > 'shifted' in the displayed image by however many the > > CLUT tpage X offset is e.g. If I have my CLUT at > > frame buffer address X=1, Y=480 (instead of X=0, Y=480) > > then pixels in the image that should be displayed using > > CLUT entry 1 are displayed with the colour of CLUT > > entry 0 etc. Again, I've displayed all settings and all > > is reported as normal: the GsSPRITE member .cx is shown > > as 1 but appears to be using 0!? :( > > > > The CLUT has to be aligned to a 16 pixel boundary > > > I wasn't aware CLUT's have to be aligned with tpages, > > certainly, Tim Tool allows them to be positioned anywhere! > > > > I hope I've explained the problems cleary enough. > > Any help would be *much* appreciated! > > > > Thanks in advance, > > > > Chris > > If you can post the code we'll have a look at the CLUT changing bit. > > Stuart Hi Stuart I've attached a zip file containing a simple example to demonstrate the problem (I hope you get it OK as I haven't sent an attached file before :) It uses ClearImage() instead of MoveImage() to simplify things but the problem is the same. Curiously, now that I've extracted the relevant code from my project for the example, I now can't seem to change *any* of the CLUT entries; not even the first 16 as I could before! I'm a bit worried that you say you have no problems changing all CLUT entries. Perhaps I've missed something, but i can't think what. Your info that CLUTs have to be 16 pixel aligned has cleared-up the 'shifted colour' problem. Thanks, I did not realize this. I'll post this to the newsgroups as well in case anyone else is interested. Thanks for your quick response ;) Chris PS I'm using GNU development in case you need to know. --------------1105ACA5A42 Content-Type: application/x-zip-compressed Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="TEST.ZIP" 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 --------------1105ACA5A42--