OCM / ESE-MSX Sprite multiplexing seems broken

By retrocanada76

Hero (575)

retrocanada76's picture

06-06-2023, 17:14

When I was porting the V9958 to the Tang Nano 9K I though it was my project that I made some mistake then I tried on my MisterFGPA and the same behaviour happens there. I don't know if this has been discussed here before but the sprite multiplexing in OCM/ESE MSX at least for 123 modes seems broken. See the short video:

https://www.youtube.com/watch?v=XbxgC7INQF8

It wasn't supposed to be like that. Zanac multiplexes them beatifully. Maybe it is getting the wrong 5th sprite number ? I am trying to understand the code.

Login or register to post comments

By retrocanada76

Hero (575)

retrocanada76's picture

07-06-2023, 10:44

Well, I fixed it. I found many concerning issues with sprite testing. I will make a change request to Kdl. These issues are in the official vhdl.

From the many issues i can tell:
1) it wasn't stopping the sprite testing at the 192 or 212 line. It would keep testing with garbage even after the vsync
2) it wasn't telling the 5th bit flag (there was an interrupt req masking of some kind, or typo)
3) it was reporting the 9th sprite even for 123 sprite modes 1

I made some changes, let's see what Kdl think of that or he has his way to fix them. But now Zanac works nicely, even that shitty Super Boy game multiplexes the sprites.

There are still some things like it does check sprites in text mode the S#0 will return overmap even in screen 0 or 1. I don't know about real hardware probably is disabled.

I also added a jumper for the Tang Nanon 9K to support 8 sprites even in spmode = 1. I'd like it to be 32 but it would require drastic changes in the linebuffers, etc.