Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!cs.utexas.edu!uunet!lll-winken!ubvax!ardent!peck!rap From: rap@peck.ardent.com (Rob Peck) Newsgroups: comp.sys.amiga Subject: Re: Larry's ghost fix works....why? Message-ID: <8722@ardent.UUCP> Date: 16 Oct 89 21:54:47 GMT References: <1648@nigel.udel.EDU> Sender: news@ardent.UUCP Reply-To: rap@peck.ardent.com (Rob Peck) Organization: Ardent Computer Corp., Sunnyvale, CA Lines: 44 In article <1648@nigel.udel.EDU> ant@cmr.ncsl.nist.gov (John Antonishek) writes: >lphillips@lpami.wimsey.bc.ca (Larry Phillips) writes: >>In <13370@nsc.nsc.com>, chaim@nsc.nsc.com (Chaim Bendelac) writes: ... >>>is a sprite in the form of a volleyball. However, instead of showing >>>itself in its round form, the ball is displayed as a ghostly white >>>stripe all over the length of my screen. I have tried "nofastmem" >>>but cannot get it right. I have seen this effect with other PD programs, >>>and I am starting to worry. Is there something wrong with my A500? > >>Try moving your screen to the right with the Preferences program. >>-larry >This fixed my ghost problems, but will someone please tell me why it works? >Thank you in advance. Amiga displays sprites by doing direct memory access during explicitly reserved memory clock cycles near the start of the time that the leftmost edge of the screen can be displayed. The designers of the Amiga allowed the screen to by dynamically moved left or right by adjusting the position at which the screen DMA begins. The Amiga Hardware manual shows a chart that defines the DMA time slots, showing that the first time slots are assigned to memory refresh, and audio, the disk, serial, the sprite come next and finally the display DMA. (Every item that needs memory access is basically assigned to alternate time slots, where the CPU gets the unassigned slots since it needs only every other memoryy slot to run at full speed.) Display DMA, when adjusted "to the left", overtakes the DMA time slots that would otherwise be available to the sprites. Evidently it was decided way back then that to make sure the display could be adjusted over a wide range of monitor centering, the small sacrifice of losing the higher numbered sprites would be acceptable. I created a PD program, "SpriteAdjust" that will display the top 6 sprite over the center of the Preferences centering gadget. When all 6 sprites display as gray squares instead of a mess all the way up and/or down the screen, then the screen is positioned acceptably for most games that use sprites. That is, the DMA slot for all of the sprites is available to the sprite and it does not receive an all-1's signal, causing the mess. SpriteAdjust is on People Link's Amiga forum. I'll be including it in the archive for my BADGE 89 Killer Demo entry also because I need all of the sprites to work. The entry is called OnlyAmiga. Rob Peck