Question about sprite mode 2

Par Max-me

Supporter (10)

Portrait de Max-me

13-02-2022, 14:39

Hi,

I want to use sprite mode 2 in order to put more than 4 sprites in a row on screen 2 (when running on an MSX2 or higher). According the specification it should be sufficient to write 010 to M5 M4 M3 (in stead of 001), but when I do this the sprites are messed up (i.e. wrong locations on the screen). I know the color attribute is no longer used for mode 2 (since it has a separate sprite color table) and that filed is marked as unused, but I would expect it other than that the sprite attribute table to be compatible with mode 1.

Is there something more that needs to be changed?

!login ou Inscrivez-vous pour poster

Par Grauw

Ascended (10721)

Portrait de Grauw

13-02-2022, 14:48

In sprite mode 2 the attribute + colour table size and alignment is changed from 128 bytes to 1024 bytes. Bits A7-A9 in register 5 have turned from an offset into mask bits and must be 1 unless you want mirroring to occur. See page 93 of the V9938 application manual.

So if you set bits A7-A9 to 1, and make sure the colour table is aligned to a multiple of 1024 (e.g. 1C00H) and the attribute table to a multiple of 1024 + 512 (e.g. 1E00H), I think it will solve your issue.

Par Max-me

Supporter (10)

Portrait de Max-me

13-02-2022, 14:49

Ah great thanks. BTW I also noticed by coincidence a difference between the wiki and the application manual for R1:
The wiki states bit4 is M2 and bit3 is M1, but the application manual states it the other way around.

Which one is correct here? For me it doesn't matter for now since both are 0, but it looks like one of the two is wrong.

Par mars2000you

Enlighted (6450)

Portrait de mars2000you

13-02-2022, 14:58

You are probably right, see this page before it was modified by other people:

https://www.msx.org/wiki/index.php?title=VDP_Mode_Registers&...