The Gamate is a console made by Bit Corporation, it was released around 1990 and designed to compete with the original Nintendo Gameboy offering a similar 4-shade green tinted screen which unfortunately suffered from a lot of ghosting, which combined with the rather poor response times many games have on the controls made playing it quite a frustrating experience.
It’s a Taiwanese system, and compared to others developed in the region, even many years later, it was surprisingly well built and had the potential to be fairly competitive.
MAME has had a driver for a short time now, coming from when MESS was merged in, however prior to the original MESS driver being developed around that time there were no dumps for the system due to the custom card media, and protection system that hadn’t been cracked. Once the protection had been figured out dumps arrived and MESS got a preliminary driver that ran the dumps available at the time, however as new dumps showed up the emulation was found to be lacking and didn’t see the necessary improvements to support them properly.
Kevtris had already written up a tech document about the system, and done his own FPGA based implementation of it, so with those in hand I decided to rewrite the majority of the MAME driver. As a result the MAME driver now appears to be on par with the original system, complete with many graphical errors that were also present when using original hardware, but harder to see due to the poor quality LCD screen (for example flickering sprites, wobbly status bars, badly flipped sprites etc.)
At this stage most games that were known to be released have been dumped for the system, so it seemed like a good time to improve the driver. There are some hardware features that none of the games seem to use however, and only one uses the serial link which I haven’t emulated yet (it apparently barely works even with original hardware so I’m not sure it will really work under emulation either)
From a hardware perspective the system is quite interesting, it uses a 6502 series chip, with an AY8910 clone for sound (strangely the original MAME driver had an entirely custom implementation for this)
Video is probably where the system design becomes a bit more questionable, the CPU drives 2 1bpp framebuffers which are combined to give 2bpp output, however, it can only write one framebuffer at a time (there’s a register to switch) and every read/write has an auto-increment, so to draw 4 colour graphics is tricky. There are no hardware sprites or tilemaps, it’s all done with software in the framebuffers.
There’s x and y scrolling, but they apply to the entire display so you’re left either having to erase and redraw either your backgrounds or your sprites if you don’t everything scrolling together, that can be quite demanding on the relatively weak 6502. This is why some games have wobbly status bars when scrolling, as after scrolling the status bar needs to be redrawn at a new position.
There are also 2 special ‘Window’ modes that make having a non-moving status bar easier, the most commonly used one of these allows the top 16 rows of the display to become a static, non-scrolling area taken from a different part of the video ram. This is one of the things that was previously not emulated in MAME.
The 2nd Window mode, which nothing seems to use allows for between 1 and 7 lines taken from yet another place in VRAM, although I think it also turns off vertical scrolling for the rest of the screen, so could be seen as less useful.
Anyway, what sparked my interest in fixing up this driver was a recent dump of Kiki Inland, which is a game influenced by Adventure Island / Wonderboy. The emulation was especially bad before, now it’s just bad in ways that match the original hardware.
Some screenshots for the non-videoy people. (I’ll add more later)
and some videos for people with better bandwidth.
I’ve also made some videos of some of the other games on the system, and will likely upload more to my YouTube channel in the coming days
In other, less interesting news, I updated the MAME SH3 and SH4 cores to use the SH2 recompiler, which gives the Cave SH3 / CV1K driver a speed boost on weaker hardware. Unfortunately most Naomi games don’t seem to want to boot with the recompiler enabled, so it’s still disabled on those, if you do enable it then Crazy Taxi gets a boost to around 75-80% ingame without any other driver optimizations on my system tho, which is a good start if the issues can be fixed.