On Mon, 01 May 2000, sander Niessen wrote:

> When you have a sprite collission. The fifth bit of status register 0 (S#0) 
> should be set. But when I try to read this bit it always (even when i place 
> two sprites on the same position) not set, zero. How come!

A few guesses:

(I think the last one is most likely your problem, but I only thought of it
after I typed all the others; I didn't delete them just in case)

- Do the sprite patterns actually overlap?
  It is not enough if the coordinates overlap.

- Is sprite display enabled?
  If sprite display is disabled, sprite collisions do not occur.

- Is collision detect enabled for this sprite?
  In MSX2 video modes, collision detect can be disabled by setting bit 5
  of the same byte that holds the color.

- Do you use the OR merging of sprite colors?
  This feature disables collision detection.

- When is S#0 read?
  The collision flag is reset after each S#0 read.
  Note that the MSX BIOS interrupt handler reads S#0.
  Maybe the BIOS stores this value somewhere.
  If not, you must either read it before the MSX BIOS does (#FD9A interrupt
  hook may work, not sure though) or use your own BIOS.

Bye,
                Maarten

****
MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED]
and put "unsubscribe msx [EMAIL PROTECTED]" (without the quotes) in
the body (not the subject) of the message.
Problems? contact [EMAIL PROTECTED]
More information on MSX can be found in the following places:
 The MSX faq: http://www.faq.msxnet.org/
 The MSX newsgroup: comp.sys.msx
 The MSX IRC channel: #MSX on Undernet
****

Reply via email to