David Haywood's Homepage
MAME work and other stuff

SSV Improvements Part 2

November 26, 2018 Haze Categories: General News. 38 Comments on SSV Improvements Part 2

Another feature of SSV is the ability to disable certain bitplanes on sprites. The driver implemented this to switch between 6bpp (64 colour) and 8bpp (256 colour) sprites, pre-decoding the tiles in both of these formats. The actual hardware is much more flexible than that however as you can disable any 2 bitplanes, and it turns out Eagle Shot Golf was making use of a different, previously unsupported masking combination for the ‘Birdie’ and ‘Eagle’ text at the end of holes, which was causing Japanese characters to appear over the text. Presumably Sammy did this to save memory, and if they want to display the Japanese characters different bitplanes will be enabled (the set we have seems to be a US set, so there’s no Japanese text used to test that side of things)

Here’s what it looked like before.

Eagle Shot Golf Eagle Shot Golf

and here’s how it looks with the fix.

Eagle Shot Golf Eagle Shot Golf

This was a much easier fix than the previous ones, however there must be some kind of global enable / disable for the feature, as while it’s explicitly needed by Eagle Shot, a few other games dislike it. Like the others, this bug has existed in MAME since the game was added (0.75, from 12 Oct 2003 – 15 years ago)

Again, this is likely to be in the end of December release (0.205) as the deadline for the end of November release on Wednesday has already passed.

Go to article.. »

SSV Improvements

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.

Go to article.. »

Little Changes part 3

November 23, 2018 Haze Categories: General News. 4 Comments on Little Changes part 3

I’ve been spending most of my time lately working on XaviX emulation, because it’s an engaging challenge, and easily one of the most interesting things I’ve had to work on in years, it’s actually making MAME fun to work with again, however, that doesn’t mean I haven’t made a couple of other adjustments over the past month.

First up, there’s the subject of the article below, Blomby Car, which in 0.204 will have proper shadows and headlight effects. While I don’t understand the popularity of this game (the so bad it’s good factor?) it does seem to be a popular title, so anybody who wants to run that in MAME will definitely be better off using 0.204 and newer once 0.204 is released.

Blomby Car Blomby Car
Blomby Car Blomby Car

There was also an interesting discovery with Pinball Action. The Spanish community alerted us to the fact that when Tecfri sold Pinball Action they included a sub-board which plugs in where the Z80 usually goes, on that sub-board was an extra Z80 and some connectors. It turns out that Tecfri modified the game to work with a custom Pinball styled cabinet, with off-screen display for the scores etc. (the same kind of thing that was used for the Spanish games Speed Ball and Magic Ball) With that knowledge, I implemented the emulation of this device for the Tecfri set, as you can see from the following screenshots (the scores at the top are the external display)

Pinball Action (Tecfri) Pinball Action (Tecfri) Pinball Action (Tecfri)

Another game on which there was behind the scenes movement was TCH’s Kick Goal, where some months ago a PCB was purchased to redump the sound ROM (which was bad) and also send off the PIC16c57 to CAPS0ff for deprotecting and reading out because it’s one of those annoying games where they used a PIC as a sound CPU, like a lot of Playmark games, and random bootlegs also did. With the PIC dump it became possible to hook up the sound emulation, giving this awful game proper sound emulation. It sounds awful, because it really is a bootleg quality sound system, but at least it now does have sound and is running the original program. The PCB turned out to be an alt revision too (that was added some months back) Further research is required with this game to figure out why it has trouble with the EEPROM settings, it’s surprising how many little issues there can be in getting even a simplistic looking game like this properly emulated.

Kick Goal Kick Goal
Kick Goal Kick Goal

It was also found during the month that the known program ROMs for the parent ‘Earth Joker’ set were corrupt, causing almost entirely broken scrolling on the final level and final boss. (Again, like many other bugs, this was observed on a MAME Roulette stream) A comparison with the Japan only prototype set pointed at the most obvious piece of broken code, and a PCB was found to redump the ROMs. For better or worse the PCB turned out to be a slightly different revision, with more changes than just the bad byte, so couldn’t be used directly to replace the main set, however the main set now gets patched on loading and is marked as ‘BAD DUMP’ pending the discovery of a PCB with the same revision to check it.

Earth Joker Earth Joker
Earth Joker Earth Joker

Again, all these updates address issues that have been present in the emulation since it was first added; Blomby Car has always been missing the Shadows / Headlights, Kick Goal has always been missing proper sound, and Earth Joker has always been broken on the final stage due to the bad ROM. Even if these things have been emulated for years (Blomby Car 0.37b12 15 Feb 2001, Kick Goal 0.61 04 Jul 2002 and Earth Joker 0.37b9 06 Nov 2000) these bugs have only just been found and fixed, so in the case of Earth Joker it has been incorrect for 18 years. Any version you pick before 0.204 is going to have all these bugs / missing features.

Outside of my work there’s actually been a huge amount of progress on old HP, SGI and Sun workstations over the past month. Anybody who worked with those things back in the day, or is just curious about machines they never got to experience because they were expensive / uncommon outside of businesses is going to be in for a treat with all the recent progress bringing things forward.

Go to article.. »

Calling Mr. Blomby

November 21, 2018 Haze Categories: General News. 4 Comments on Calling Mr. Blomby

This is World Rally, a highly influential game released by Gaelco in 1993

World Rally World Rally World Rally

This is Blomby Car, a heavily reskinned, partially reprogrammed bootleg of World Rally released by ABM & Gecas in 1994, that doesn’t play anywhere near as well as the original.

Blomby Car Blomby Car Blomby Car

Notice anything missing?

Yeah, the Shadow / Highlight effect.

As it happens, the Blomby Car video driver is specifically excluding shadow sprites, not drawing them at all. The game still puts them in spriteram, even still uploads the palettes for them, but the driver does not draw them. If I hack up the World Rally video driver to work with Blomby Car, I get some visible shadow / highlight sprites (but broken priorities)

Blomby Car with Shadows + Highlights Blomby Car with Shadows + Highlights

What I need to know is does the actual Blomby Car PCB display these effects, or are they actually missing on the cloned hardware too (it’s a more advanced effect than a lot of clone / bootleg hardware would have) If they’re present on the PCB then I need to fix up the emulation properly. If they’re not, I need to throw this back on the scrap heap from where it came and leave the driver as it is.

So, does anybody have a Blomby Car PCB, and if so, if the effect is present, can they provide pictures of it in action (and if possible, a video of the game running the night stage in attract mode) so I can see if there’s anything else unusual about it.

*edit* Osso pointed me at this YouTube video


which clearly shows the car shadow, so yes, the PCB implements the effect. I was only finding hundreds of MAME videos (why are there hundreds of MAME videos for this junk anyway?!)

*edit 2* effect is now emulated.

Content not available.
Please allow cookies by clicking Accept on the banner

Go to article.. »

A Month of XaviX progress

November 20, 2018 Haze Categories: General News. 3 Comments on A Month of XaviX progress

There’s been quite a lot of XaviX progress over the past month, including preliminary sound and a donation drive that allowed a whole bunch of e-kara cartridges to be acquired and dumped by both Sean and Team Europe.

The e-kara is an interesting little unit, with sequenced versions of songs contained in cartridges. It’s simple, and while there were only around 9 cartridges released in the US, and 7 in Europe (with a lot of repeated) it looks to have been a very popular system in Japan, with over 100 cartridges.

It also presents to us one of those interesting cases where world events caused a change in the software released for it. In most cases if a song appears in multiple cartridges it always uses the same background, however if you look at the US Starter cartridge, which is presumably the first US release, from the year 2000 you’ll see that Britney Spears “Stronger” contains a picture of the World Trade Center.

e-kara US Starter e-kara US Starter
e-kara US Starter e-kara US Starter
e-kara US Starter e-kara US Starter
e-kara US Starter e-kara US Starter
e-kara US Starter e-kara US Starter

By the time Volume 8 had been released, in 2002, that image was clearly deemed unsuitable, as the background was changed. The same changed background is used in the UK/EU Volume 3, also from 2002.

e-kara US Volume 8 e-kara US Volume 8
e-kara US Volume 8 e-kara US Volume 8

Interestingly the ‘Germany’ Starter pack, which contains the same songs as the US starter pack, but is from 2002, chose to use a different image again, so clearly Takara took some time to choose what they deemed was a suitable replacement. What’s also interesting about this starter pack is it’s the only cartridge we’ve seen specifically with a ‘GER’ code, so there might be a UK/EU sampler out there too that isn’t yet dumped. It’s possible the only change there will be the image used if that sampler was released slightly earlier, otherwise there doesn’t seem to be any reason to have a specific region here (unless the content of one of the other songs was deemed inappropriate and censored, I’ll have to check)

e-kara German Starter e-kara German Starter
e-kara German Starter e-kara German Starter

Emulation of the e-kara cartridges, while still preliminary, proved very useful in pointing me at a bug in my XaviX emulation that was causing some other stuff to fail during boot, of note, Star Wars. It also allowed Lord of the Rings to start playing music without crashing / filling the screen with garbage. I noticed this bug because while most e-kara cartridges ran though the songs just fine, a single Japanese one was just crashing, despite the code being nearly identical. This highlighted an error in the way data was being fetched in certain cases.

The e-kara cartridges also told me a bit about the timer hardware the XaviX has, because the UK and US/Japan cartridges use different timing methods to accomplish the same thing. While my timing is currently entirely incorrect, this at least has given me something to go on when I look at correcting it.

Neither Lord of the Rings or Star Wars gets past the ‘Swing Sword’ / ‘Swing Lightsaber’ screen, because those input devices aren’t yet mapped (it’s some kind of sensor array detecting the shiny surface of the controller to get a 3d space position and orientation, I not only need to get my head around how the game is reading the inputs, but how I’m going to map any conventional device to give it a signal that might make it somewhat usable on a PC)

Tiger Star Wars Tiger Star Wars Tiger Star Wars

Tiger Star Wars Tiger Star Wars Tiger Star Wars

Dirt Rebel MX also saw big improvements due to Lord of the Rings pointing me in the direction of some bugs with the new Super XaviX opcodes I’d implemented, with the road now being correctly rendered. It also told me that there were errors with the implementation of the math unit, which I then fixed. This also required raster interrupts, which I’d implemented for Snowboarder. The game is basically playable apart from the EEPROM saves not working correctly, looking at those is slowly becoming a top priority.

Dirt Rebel MX Dirt Rebel MX Dirt Rebel MX

I also spent some time looking at the background tilemap on Monster Truck, it uses an ‘indirect’ mode that so far nothing else does, where tile attributes (colour / flip) are stored right before the graphic data. I think I’ve got it figured out now, as all backgrounds render correctly. I also added preliminary analog steering controls (implementation needs to be improved still)

Play TV Monster Truck Play TV Monster Truck Play TV Monster Truck

After trying to work out x-coordinate handling for a while, I settled on a kludge that seems to work in all cases, meaning sprites wrap more correctly on many games, which is very noticeable in-game on Snowboarder, with the playfield looking more correct. The Nostalgia packs also benefited significantly from this.

Play TV Snowboarder Play TV Snowboarder Play TV Snowboarder

Play TV Rescue Heroes now boots too. This one was aimed at kids, so not much of a game. Strangely it’s the only XaviX product I’ve seen that fails to display either the XaviX logo or an SSD copyright anywhere; this might have been an oversight on the part of the developer as it looks very much like it was a license requirement. Some of the controls still need mapping. This also needed some sprite mode fixes as it uses a sprite mode nothing else does.

Play TV Rescue Heroes Play TV Rescue Heroes Play TV Rescue Heroes

Some addressing fixes when executing code from upper banks, and a cheap semi-random implementation of the ball controller allow both Football and Madden Football to get ingame without crashing, although without a more accurate emulation of the ball they’re not especially playable.

Play TV Football Play TV Football Play TV Football
Madden Football Madden Football Madden Football

Wild Adventure Mini-Golf can now be convinced to go ingame, although still lacks proper controls, so all shots have no power.

Wild Adventure Mini-Golf Wild Adventure Mini-Golf Wild Adventure Mini-Golf

Some tile addressing fixes solved a video problem in Ping Pong aka Table Tennis. Again no controls yet, but it’s closer to having them than it was.

connectv Table Tennis connectv Table Tennis connectv Table Tennis

The raster effects, math fixes and Super XaviX opcode fixes also helped with XaviXport Tennis. This is also the only game to be using some kind of Super XaviX bitmap mode, it uses it for the title screen and for some reason the bitmap is larger than the display. Either the game is meant to be in a higher resolution mode at this point, or it’s meant to scale down the bitmap, I need to figure out which. I know it’s in an Interlace mode, which would explain the vertical resolution, I probably have to skip lines, but the horizontal resolution difference is a mystery right now. Like the others, no controls yet, but the improvement in attract mode is significant, with the math fixes meaning the demo now plays properly.

XaviXport Tennis XaviXport Tennis XaviXport Tennis

Dragon Quest now boots to what seems to be a calibration screen due to the same fixes as Lord of the Rings and Star Wars

Dragon Quest Dragon Quest Dragon Quest

That just about covers improvements to the various XaviX based games, things like Card Night and Bass Fishing are pretty much how they were before (although the addressing bug that I fixed for e-kara etc. means Bass Fishing is now more stable and both have music that seems to play at 100x the expected speed) I’ll talk a little more about some e-kara stuff now.

While all of the regular Japanese e-kara carts (EC series, GC series) have the same basic presentation as the US / UK ones (see shots)..

e-kara Japan e-kara Japan
e-kara Japan e-kara Japan
e-kara Japan e-kara Japan
e-kara Japan e-kara Japan

..there were also some different cartridges for Japan (for example the MC and SC series) These had increasingly fancy menus, showing the full cartridge titles and custom menu presentation. There were also several other series of cartridges, some even designed for different hardware, or multiple types of hardware, but we don’t have any dumps of those.

e-kara Japan SC Series e-kara Japan SC Series e-kara Japan SC Series
e-kara Japan SC Series e-kara Japan SC Series e-kara Japan SC Series
e-kara Japan SC Series e-kara Japan SC Series e-kara Japan SC Series
e-kara Japan SC Series e-kara Japan SC Series e-kara Japan SC Series
e-kara Japan SC Series e-kara Japan SC Series e-kara Japan SC Series
e-kara Japan SC Series e-kara Japan SC Series e-kara Japan SC Series
e-kara Japan SC Series e-kara Japan SC Series e-kara Japan SC Series
e-kara Japan MC Series e-kara Japan MC Series e-kara Japan MC Series

That brings us on to some less positive news. While we can potentially dump and document all the released e-kara cartridges, and those for similar systems, assuming we can get hold of them there are some things that have likely already been lost to time. It seems that between 2003 and 2009 Takara sold an e-kara WEB unit. We picked up one of these and it’s a device, with an e-kara cartridge that connects to a PC. On the PC you downloaded (or it was supplied with, but we don’t have) a piece of software that connects to a web service in order to download songs and transfer them onto the e-kara WEB cartridge. Presumably copying them to Flash ROM as there doesn’t appear to be a battery. It looks like many hundreds of songs were released this way, but it also looks very much like the service no longer exists, so no songs can be downloaded.

The cartridge we picked up is apparently empty, most of the ROM is blank, and it shows no songs on either an e-kara unit, or under emulation.

e-kara Web cartridge e-kara Web cartridge e-kara Web cartridge

Now, assuming it is a flash mechanism, it’s possible there are cartridges out there where people have downloaded songs onto them, which could be dumped to preserve that data, but unless somebody knows what they have we can’t just start buying up random e-kara Web cartridges in the hope that they contain something. The sheer number of songs, and limited capacity of the cartridges also surely means some things are going to be lost even in the best case of people donating old cartridges to us. I could be wrong about the service no longer being available, but the website listed on the title screen no longer resolves, and I can’t find any software to attempt to connect.

The Internet Archive has various snapshots of the Takara sites right up to 2009, including the e-kara Web one, but there appear to be no downloads, presumably because you had to download through the software.

Sean even kindly scanned the e-kara Web manual, but it doesn’t seem to contain anything to help us here.
e-kara WEB manual 1
e-kara WEB manual 2
e-kara WEB manual 3
e-kara WEB manual 4
e-kara WEB manual 5
e-kara WEB manual 6
e-kara WEB manual 7
e-kara WEB manual 8

So it’s most likely we’re going to have to accept that a lot of content for this system has been lost, because it was download only, and that’s only going to become a bigger problem in the future with so many products switching to that model; it’s one of the biggest dangers to keeping our digital history alive, things are lost with the flip of a switch that could happen at any moment.

On a more positive note, we did pick up a few other XaviX things, and they’ve turned out to be easy enough looking cases for Sean (they have pads near the ROM to solder onto for dumping) so hopefully he’ll find time to dump them and we’ll have a little more evidence contributing to improving the emulation, so far everything that’s been dumped has helped tell us something about the platform.

— some videos of recent progress related to the article
https://www.youtube.com/watch?v=hSbDMOa7N7s Monster Truck
https://www.youtube.com/watch?v=3JulMHjbpIQ Namco Nostalgia 1
https://www.youtube.com/watch?v=Aj8Fyxmbbko e-kara (cartridge ‘SC0005-SAI’)
https://www.youtube.com/watch?v=rA_eWOeL9QE XaviX Tennis
https://www.youtube.com/watch?v=5jmR1fPWLao Dirt Rebel MX
https://www.youtube.com/watch?v=X43j8QJJR2U Lord of the Rings
https://www.youtube.com/watch?v=VMAf1H8uoZ4 Star Wars

Go to article.. »

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.