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
****