The ‘midas.c’ driver was created by Luca a while back, it runs 2 games ‘Live Quiz Show’ and ‘Hammer’
One of the observations Luca made at the time is that the hardware was basically an enhanced clone of the NeoGeo, especially the video system which essentially worked in the same way but with some improvements (support for 256 colour tiles instead of 16 colour tiles being the main one)
There has been a ‘merge with NeoGeo driver’ note in the source for a while, and the game ‘Live Quiz Show’ had some noticeable graphic glitches on certain mini-games. I decided to find out if actually using the proper NeoGeo video code instead of the driver’s local implementation would help.
This required some refactoring of the NeoGeo video code in order to handle the different format graphics, and there were also a few other oddities I had to deal with such as the Y-Zoom table on the Midas hardware being uploaded by the main CPU rather than contained in a ROM.
Interestingly this uploaded Y-Zoom table ended up being the key to solving the graphic glitches, the table they upload is NOT the same as the regular NeoGeo ROM table, and treating the zoom as a simple linear zoom is what was causing the errors.
Anyway, with the NeoGeo sprites refactored to be a device, and the Midas sprites being a simple class inheriting the base NeoGeo sprite class with the various difference implemented there we end up with the following improvements. On the LEFT you can see the old glitched images, on the right are the images with the new code.
Comparison shots showing the bug fixed in Live Quiz Show
Less code, less duplication, less bugs, everybody wins.