November 8th, 2009
Megasystem 32 revisited
I decided to take another look at Jaleco Megasystem 32 because the long-standing priority and shadow bugs were annoying me.
I started off by cleaning up the memory map based on notes from Charles MacDonald and adapting the video rendering to use the same priority system as the Tetris Plus 2 driver which at least makes some use of the priority ram (although, not all of it)
Using the Tetris Plus 2 priority system at least allowed the shadows to be hidden which made things more playable, however, I wanted to actually render some form of shadows so that they wouldn’t be forgotten about completely.
From what I was observing it seemed clear that the shadows must somehow be connected to the priority system. My best theory was that they get used if a sprite is placed under the tilemap. I implemented things this way, and found that Game Paradise and the two Tetris games were greatly improved (nothing else actually seems to use Shadows).
I don’t consider the implemention to be perfect however, as a large amount of the priority RAM still isn’t being used, and there are some things being shadowed which probably shouldn’t be. Overall it seems like a good improvement, and with a better understanding of the priority RAM I Imagine things could be fixed further.
Gratia still has various priority bugs, whch again probably come down to the understanding of the priority RAM. I haven’t been able to fix these.
While working on this I came to the conclusion that I don’t think the standalone Tetris Plus 2 hardware actually supports shadows, only the Megasystem 32 version. If you look at the standalone verison they fake shadow effects by colouring things grey (the ’shadows’ on the mode select screen) If the hardware natively supported shadowing they wouldn’t need to do this, and the fact that they use proper shadows in the MS32 version suggests the cheaper hardware can’t do them.
Anyway.. some screenshots of how things look post-improvements.
Game Paradise









Tetris Plus

Tetris Plus 2


There are still many things left to understand about this hardware, the brightness control still bugs me, I believe that’s also tied to the priority somehow. There should also be flags to disable tilemaps, disable wrapping on the ROZ layer, change the tilemap dimensions, and various other things.
F1 Super Blast still needs an extra ROZ layer hooking up, and simulation of some maths chip that appears to have been added (either to boost performance or for protection) I don’t know how to tackle that one.
Posted by Haze @ 15:45 | Comments (3)






