David Haywood's Homepage
MAME work and other stuff
November 25, 2018 Haze Categories: General News. 9 Comments on SSV Improvements

This could be considered a part of the ‘Little Changes’ series of updates, except the SSV driver is quite a large one so more worthy of a separate update.

The SSV driver has been in MAME for a long time, over 15 years, with some additions being more recent than others (although nothing has been added to it for a long time now)

The driver is starting to show its age now, with a number of effects known to be missing, one of the most notable being the rowscroll effect which is used by a number of games, or at least, was known to be used by Dyna Gear and Eagle Shot Golf.

We had a feeling Dyna Gear was missing an effect because a Korean copy of the game (on completely different hardware, reprogrammed with Software rendering to a framebuffer) utilized such an effect before the title screen, and there was very little reason to think the people making the clone would add such an effect if it wasn’t also present on the original hardware.

We also knew that Eagle Shot Golf should use an effect on the Sammy logo as video evidence showed that it should look like the Sammy logo on the NeoGeo game Viewpoint.

I decided that it was about time to start looking into emulating these effects myself. I figured that since the NeoGeo does the effect on ViewPoint with a scanline interrupt, and SSV is primarily a sprite based system with ‘floating tile strips’ that it was most likely that SSV used a scanline interrupt. Poking around the V60 code and IRQ enable registers quickly disproved this as there was only a single interrupt level enabled and no code for any others.

That meant I had to look around in video RAM for scroll tables, there’s a lot of video RAM, so finding a reasonable looking table took a while, but eventually I located one in each game at points where the effect was thought to be active. In each case it was in a different location, but that wasn’t too surprising, Seta video hardware tends to have lots of pointers to data structures etc. A bit of register tracing and I found a base register, and enable flags for the effects.

The other challenge with this was that the SSV driver code was very ‘old MAME’ style, optimized for speed over maintainability, trying to reuse variables all the time in functions rather than simply declaring new ones, generally difficult to follow, and even more difficult to modify / add missing features to. It required some substantial refactoring of the code to turn the main rendering code into a per-line renderer, instead of a per-tile renderer before I could even attempt to add the effect. There’s certainly something to be said for how much better and easier the code in newer versions of MAME is to work with, and having worked with the driver a bit I’m less surprised nobody tackled this earlier. It’s understandable why it was as it was, because CPU power and memory was more limited back then, but it was refreshing to turn it into something easier to work with.

With that done, hooking up the effect was relatively easy, it actually worked first time. The effect appeared on the Dyna Gear title screen, slowly revealing the logo.

Dyna Gear Dyna Gear Dyna Gear

In addition, there is an effect when you get hit by an enemy, it distorts the background momentarily to show that you’ve been hit (it looks better in motion)

Dyna Gear Dyna Gear

New, Eagle Shot Golf

Eagle Shot Golf

Where the Sammy logo now appears complete with wavy effect

Eagle Shot Golf Eagle Shot Golf Eagle Shot Golf

However, when searching for the enable registers I also observed that a number of games we didn’t expect to be using the effect were actually enabling the registers, and also clearly had a line table being populated, so the effect was used in places that prior to emulation I wasn’t even aware of. Ultra X Weapons uses it before the title screen

Ultra X Weapons Ultra X Weapons Ultra X Weapons

and also ingame to animate the water (more obvious in motion)

Ultra X Weapons Ultra X Weapons

Survival Arts is another game using it

Survival Arts

The use is more subtle (probably the only thing about the game that is subtle!) but they use it for animating the background on the Desert stage, the water on the Aquarium stage, and the floor on the 3rd stage shown in these shots.

Survival Arts Survival Arts Survival Arts

Dramatic Adventure Quiz Keith & Lucy also uses the effect, for a parallax scroll on the background for the first round or two, again not very obvious in screenshots

Dramatic Adventure Quiz Keith & Lucy Dramatic Adventure Quiz Keith & Lucy Dramatic Adventure Quiz Keith & Lucy

Anyway, as many of those aren’t easy to see in screenshots I made some videos for all of them (maybe I should have just posted the videos)

https://youtu.be/bvEvRUzgeVw Dyna Gear
https://youtu.be/8qpbefa8BG4 Eagle Shot
https://youtu.be/8okjwGPjci0 Ultra X Weapons
https://youtu.be/A8XBtCAaGjY Survival Arts
https://youtu.be/dT-saAbeO18 Dramatic Adventure Quiz Keith & Lucy

So yeah, this is just another example of where MAME is improving all the time.

There are other improvements I still want to make to this driver, so you may see another update about it later if I feel they make a big enough difference.

Note, this won’t make 0.204 as I missed the code freeze, so should be in 0.205, which will be released around Christmas.

I also ended up spending £120 of my own money on some more e-kara and related stuff, just because I find it fascinating and it’s been fun to emulate, so hopefully there will be even more things to show on the XaviX side of things soon too (I could put up some shots of Excite Fishing, but it still requires a hack to boot so isn’t too interesting yet) It seems these TV games, especially the Japanese ones was quite the rabbit hole of unemulated material.


You can follow any responses to this entry through the RSS 2.0 feed.

very nice can’t wait to see it actually working in MAME. Thanks Haze

It’s really nice to see some of these old drivers get alittle attention. Thanks haze !!

awesome job Haze!

Please, don’t hesitate to post here any SSV-related update, whichever it fixes. It’s always interesting to read and this system, despite its sadly forgotten driver, is the first ever to congregate three Japanese manufacturers in order to create some sort of hardware standard, hence it’s populated with great games. What you mention about the existence of a Korean Dyna Gear on different hardware is particularly interesting and totally went under my radar all this time (!). It makes of an already odd case (a high-quality, low-profile Japanese game (developed by good old Scarab, no less) which never gets an official release in Japan despite being exhibited and promoted and whatnot, whereas it does in Asia, at least), a very exceptional instance, if you ask me.

By the way, shouldn’t MAME’s game description reflect that the game is indeed the Asian/export “version”? It’d somehow reflect the fact that no Japanese version was ever marketed. (There’s some info like this I miss in MAME, indeed — Japan never got MVS’s Puzzle Bobble 2, Puzzle de Pon! R, Musashi Ganryuki, or Goal! Goal! Goal! officially released, just to name a few, but a MAME user could never say, attending to the game’s descriptions (or even the driver’s doc.), so you find many people there creating lists and reviews as if they did, given that the unreleased Japanese version is included together with the export version, as was the norm with this system.) I’m never sure where to report this stuff and end up keeping it for me…

Anyway, do you know if Vasara 1 and 2 have some effects or something missing (besides proper speed) at this point? I recall somebody mention it somewhere but I can’t find anything related now.

Thanks for this.

great work David, thanks :)

Re: MVS regions, since the cartridges themselves don’t dictate a region MAME doesn’t mention it. You could feasibly operate said cartridges in any region without an issue and without anybody really knowing / caring. I’m sure plenty of the games you mentioned were operated in Japan, and they contain full Japanese versions. The region in which the games were sold is not really important to MAME in such a scenario as the actual content is universal and would have been used as such. The community obsession over a ‘European’ release of a cartridge that contains the *exact* same data being worth 1000x the price of the Japanese version is not our concern, and more the product of some inane stupidity designed to artificially inflate prices.

The only time a specific region is mentioned is is it’s either explicitly stated by the game, had specific modifications that can easily be tied to a certain region, or if the game has actual problems operated in a certain region (eg. the Korean ones with censored sound roms, or cheap hacks to change the graphics which cause issues when using Japan bios) (although by that logic Fatal Fury 3 could be considered Japan only because it doesn’t look like the special endings were ever programmed properly for non-Japan)

For the Korean Dyna Gear remake (which is actually very common, you see PCBs for it all the time) I do hope to emulate the sound CPU at some point, there’s no documentation on it, but a guy did mostly reverse engineer the instruction set (it’s more or less a black-box midi player as far as the game is concerned) I just need to contact him and ask him for his research then try to implement it in MAME. It’s not the greatest product in the world, a lot of little things are missing compared to the original, eg. the dinosaurs just explode rather than turning into bones, and it even has some glitches because the Hyperstone compiler they used to develop it clearly recompiled some of the Vrender0 software video library (some flipped ‘sprites’ are broken, confirmed on real PCB) I guess somebody just really liked the game, or developed it to practice working with the hardware.

I’m not aware of any effects missing in Vasara 1 / 2, they’re late life games where to get the effects they wanted they mostly threw money at extra ROM capacity and faked it rather than trying to do anything actually fancy with the hardware. By that point a lot of these effects looked kinda dated and cheap.

Oh, so it’s some sort of a bootleg Dyna Gear. Then, it’s not as exceptional as I thought –and now I see why I never knew about it–.

Regarding the regional thing, I understand your point. It’s more than likely that say, Musashi Ganryuki was ever run in some Japanese game center(s), if we want that as a reason. Nevertheless, do you really think ‘officialness’ is not an important subject for a documentation project such as MAME? Is that MAME Dev’s word on the matter too? (Just curious, not trying to start an argument here.)

It depends what we’re trying to document, MAME primarily documents where the software could be used based on regional disclaimers etc. not where the physical copies were which is less relevant. Other people can document that if they please.

and yeah ‘King of Dynast Gear’ which is some Korean / Chinese thing, on the same hardware as the other Korean dgPix games. It’s a remake, a programmed from scratch copy of Dyna Gears, which actually makes it fascinating in the same way as things like ‘Fit of Fighting’ are. Would have been so much easier just to hack the original game, and since they’ve not even got a legal product anyway I don’t really understand why they rewrote it for entirely different hardware.

It’s so great to see improvements like this in MAME. This kind of work is, IMO, the bread and butter of MAME.

I hope that the subtle missing graphics/errors in the Konami games and the missing raster effects in the Irem games like Ninja Baseball Batman get implemented one day, too.

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.