I’m overdue a few updates here, because a couple of important things have happened and I haven’t managed to find time to write about them yet. I’m going to start with emulation improvements on an arcade puzzle game from the year 2000.
Gunpey, a game that was apparently named as a tribute to the late Gunpei Yokoi (creator of the original Nintendo Game & Watch series) is an arcade port of the Wonderswan title of the same name, it was also ported to the Playstation.
Last time I looked at this driver was back in March of 2013 where despite making some good progress, I got stuck completely with the sprite compression.
Fast forward 5 years to March 2018 and I have some new progress to show. Peter and Morten, who have been working on numerous projects with me, hooked up some hardware to the Gunpey PCB that allowed them to log video ram read / writes. By using this hardware they were able to save the decompressed data for every compressed sprite, giving us plenty of plaintext material to use and hopefully make it easier to figure out the actual compression scheme.
As a step in this process the extracted data has been hooked up to MAME while the actual scheme is figured out. This gives correct sprites in all the cases where you could previously only see garbage due to the data compression. Obviously the work isn’t yet finished, but by using this data the game can be considered playable. Once the compression is figured out the end result should be the same, just with cleaner underlying code.
I also took the opportunity to add support for zoomed sprites, used when you launch an attack on the enemy. Here are some screenshots of the improved driver.
Working with the hardware also told us a few other things, like that the framebuffer is actually in the same RAM that the sprites get decompressed into, not a separate memory area, so there must be a way the game sets up the pointer so it knows where to write the framebuffer data. It was also confirmed that the framebuffer is double buffered. These features need hooking up.
One thing that isn’t yet clear is if the Arcade version really is meant to effectively run at 30 frames per second, only updating the screen every other frame. The Playstation release runs at 60 so appears to animate a lot more smoothly. There are registers to select the source of the drawing, but at the moment they really do only change every other frame, so this might require some further investigation. Unfortunately while there are a lot of original hardware YouTube videos none of them are HD 60fps videos recorded on a 60fps camera that could show me if the game is / isn’t meant to update every frame.
Anyway, here is a video I’ve recorded showing the progress so far, obviously this is a big improvement over how it has been in previous MAME releases.
While there haven’t been many updates here over the last couple of weeks anybody who has been watching my YouTube channel will have seen various videos showing the progress on XaviX based games.
My primary goal with XaviX emulation is to understand the hardware well enough to get the Taito and Namco Nostalgia TV games up and running as they’re interesting arcade ports containing remixed versions of each of the games, which were exclusive to the units and as it’s becoming more and more difficult to find new TVs with component inputs they risk becoming dead / mostly unusable technology at some point in the probably not so distant future.
Mostly what ended up happening is I got stuck emulating those, but thanks to the dumping efforts of Sean Riddle (along with Peter Wilhelmsen for purchasing many of them) I did end up with a number of other dumps to look at, each one telling me a little bit more about the hardware in order to further the emulation.
Probably the most interesting of those dumps is ironically one of the first ones to be dumped and that is Play TV Monster Truck. While all the other games seem to use a common codebase (likely one supplied by SSD Company with slight modifications made by each developer) Monster Truck instead uses a completely unique codebase, which actually seems a lot cleaner and easier to follow than the other games, so ultimately that ended up being the focal point of the initial work. I don’t really know why this, but Monster Truck with it’s over the top giant trucks, crazy Nitro boosts and commentary that Awesome Possum would be proud of looks like it might be the key to figuring out an awful lot of how this hardware works.
There are multiple generations of the XaviX chip, which is a 6502 derived CPU with onboard gfx / sound hardware. The first generation seems to add 2 new 6502 opcodes for handling far calls / returning from far calls, and for now this is the one I’ve been working on. The later ones add more opcodes, although from a brief glance of the code seem to have very similar, likely compatible video hardware. I haven’t tackled those yet (although there are some interesting titles for when I do, such as the Star Wars Lightsaber Battle Game and a similar Lord of the Rings one)
What’s interesting about the XaviX is that it has a very console-like design, meaning that the graphical features it has can be configured in a number of ways via registers in order to suit the needs of the developer. What we’ve seen so far with the dumps is that the developers made full use of that, with most titles using the hardware in a slightly different way; Monster Truck is especially interesting in this sense because it uses a tilemap mode where the tiles numbers are actually pointers to data structures containing a packet (which controls colour and flipping) as well as the actual gfx data. Other games don’t enable that mode, and use the tile number as a regular tile number, pointing directly to gfx data. There are also bits to enable / disable the use of additional attribute tables, as well as change the offset multiplier, and use a redirection table. Furthermore, data can be anything from 1-bit per pixel to 8-bit per pixel and is stored in packed format in the ROMs, so it can draw even 5 or 7bpp data as tiles or sprites straight from the packed data in the rom, without having to expand it first. It looks like every object / layer can specify priority too, which needs to be checked for every pixel drawn (sprite list doesn’t seem to be in priority order, priority comes from an attribute) I haven’t yet emulated that tho. There also seem to be unknown ways to force tiles to be solid / use blank data, which Boxing makes use of, and again I haven’t figured out yet.
Sound, which I haven’t looked at yet is just plain 8-bit PCM.
Palettes are interestingly the same format as the Radica games like Space Invaders and Golden Tee Home, which does make me wonder if there is some connection between the hardware even if those don’t have the hardware flexibility or custom opcodes.
So far the main problem I’ve encountered is various games going off the rails, the 6502 crashes, causing code to execute in the wrong order, or just crash entirely. As a result most games are not yet playable (although if I add the additional ADC interrupt and hook up the controls on Monster Truck it would definitely be close) I suspect the code execution problem is either due to some issues with how I’ve hooked up the custom memory mapping, or just with the interrupts / various status flags as my interrupt disable is very obviously wrong at the moment and I’m not generating the secondary interrupt at all.
Either way, I figured it was about time I put up some screenshots showing the current state of progress. As I said, I don’t consider any of these playable yet, as most hang at some point, don’t have controls yet, or have noticeable graphical issues, but it’s all progress to look back on.
There are a number of other ‘first generation’ XaviX games dumped that don’t do anything worth showing yet, including Ping Pong, Baseball 2, Taito Nostalgia 1 and Namco Nostalgia 2. I think all the current problems with first generation games not booting / crashing will come down to the same thing, so hopefully once I’ve figured out what the problem is I’ll have significantly more to show.
There are other non-Xavix TV games still in the pipeline too (I bought a few over here such as ConnecTV Cricket and donated them to Sean, so assuming the parcel doesn’t get lost I’ll have those to look at too at some point, I suspect that one is unSP hardware like Skateboarder was)
Thanks to “alt/deepfb, Dan Dare, mad3001, Habi, Adonías, cpcmaniaco, Robcfg, Pablo Ruiz, Recreativas.org, and The Dumping Union” a rare PCB of the game ‘Hammer Boy’ was dumped.
Hammer Boy is one of a small number of games by Spanish developed Dinamic that was ported over to the arcades by Inder. The only other dumped title on this hardware is Megaphoenix, which I emulated a few years ago.
Hammer Boy is less of a change from the home ports than Megaphoenix was, utilizing only the 16 colour mode, rather than the 256 colour mode, meaning visually it’s pretty much a straight port of the Amiga / ST versions of the games (and personally I always liked the art better on the Amstrad CPC version even if it was ultra-low resolution)
The best way to think of the game is like a giant ‘Game & Watch’ title, with full colour graphics and some animation but the same basic gameplay. Unfortunately that does also extend to the controls which at best could be described as ‘sticky’ and are something of a source of frustration with all versions of the game (you can’t interrupt animations already playing to move position)
It’s maybe an odd choice to release as a full arcade machine in 1990, which might be why it never really gained much popularity, there are just 4 stages (Fort, Pirate, Castle, Space) at which point it loops with a higher difficulty. I guess it does fit the traditional arcade mold of being all about the high score, but is maybe a bit too simple.
Thanks should also go to Dirk Best for identifying what was wrong with the 68k -> PIC communication which was causing the dipswitches to not work, and AJR for improving the sound handling which was previously only good for Megaphoenix. My only real contribution here was identifying that it used a 4bpp mode instead of an 8bpp mode.
I recorded a video of the game running in MAME, sorry for the bad aspect / border at the bottom, I forgot that because this uses a TMS to drive the video that the screen mode and refresh rate are dynamic; I should have forced a recording size with -snapsize but forgot.
There was another arcade game called Hammer Boy; a 2001 release by Afega but that one isn’t dumped (it should be the same game as Mang-Chi tho, just with a different title)
Was my guess of this latest dump being on the same hardware as Golden Tee Home Edition correct?
No, it wasn’t.
This one had a Sunplus QL8041C die and runs in the driver MAME calls ‘vii.cpp’ (which is still fairly preliminary, and lacks sound, but was good enough for this to run it seems)
What is it? Radica’s Connectv Skateboarder (if you’re in a PAL region) or PlayTV Skateboarder (if you’re in an NTSC region) Why the branding difference I don’t know, but that’s what they did. The ROM was dumped from an NTSC unit, but the region is just an IO port register. PAL offers a selection of languages. NTSC offers English or Spanish.
Let’s start with the most important page on the whole thing, the ‘tricks’ pages. There’s no point in even trying to play this if you don’t know them.
So they’re all one of more of the 3 buttons (M, X, and O) and a direction. Strangely enough never ‘Down’ even if there is a Down input because you need it during the menus for jumping.
The buttons are on a little controller you hold in your hand, the directions are achieved by leaning slightly to the side on a model Skateboard. Yes, it’s one of THOSE games.
There seem to be 2 levels of left / right input, a very slight one, used for incremental turns and menu control, and a full on lean that turns you quickly. I’m not entirely sure how best to map those in MAME since I’d be pushed to call it an analog input, so as things stand the ‘full’ turn inputs are presented as extra buttons. I don’t think there are 2 levels of input for the up/down control, it just seems to be digital.
Gameplay, it’s 2D, overhead-ish, I guess you’d say a bird’s-eye view. You’re always moving up the screen or to the side, never down the screen, so if you go past something you’re not getting back to it. Feels a bit odd if you’re expecting something like Tony Hawk’s or even 720 degrees where you have full roam of a skate park. There are various obstacles littering the park, you can do the tricks above on them, as long as you’ve remembered them.
There’s one park to choose at the start, and 3 characters.
I believe you have to play Tournament mode to unlock the 2nd park. The game has a password save option. There’s also ‘Free Skate’ if you just want to goof around, otherwise it acts like you’d expect, there’s a timer, you get points for the tricks you do, assuming you land them without messing up, and presumably there’s a target score of some kind to beat. Not much else to it.
I can’t comment on the sound, as there’s no sound emulation. Obviously the main gimmick of this thing is that it had the board controller, and it’s a TV game, so even if it’s from 2006 it isn’t going to look like something from that period, but I think the art captures the intended style / theme in a decent enough way.
Thanks again goes to Sean Riddle for dumping this.
*edit* Played it a bit, it seems mostly working. There are 3 Skate Park designs, although the game is kinda ‘cheap’ in that it reuses each one twice, so Park 1 and Park 2 are the same etc. just different difficulties.
Here are all the passwords. The final code lets you use all the staff as characters, which is kinda pointless but a nice touch I guess.
Here are some screenshots of the other designs those unlock
The results pages have some graphical glitches, although a number of the other games in the same driver do, not sure if it’s a video emulation bug or a CPU core bug giving bad data to the video hardware. The ROM is confirmed as a good dump.
It’s a bit easy to play when you can just mash the buttons on a keyboard compared to the original device.
In the previous updates I touched on how having proper emulation of the classics has made a lot of the old ports redundant for all but the sake of curiosity. Today I’m going to look at another device which for all intents and purposes is now completely redundant, but is also a sign of what people had to accept back in 1998 when it was released.
I’m talking about the Datel Game Booster for the original Sony Playstation. One of a number of unlicensed addons that were produced for the system.
The Datel Gamebooster was a device that plugged into the Playstation and allowed you to play Game Boy titles on your TV by plugging the cartridges into the adapter, similar to how you could get a Super Gameboy for your SNES. I’ve added support for this Datel Game Booster in MAME.
Great, fantastic, you can play Game Boy games on a Playstation, that’s pretty cool, right?
Well, there’s a catch. Let’s start with compatibility. It’s bad. Most games won’t work, those that appear to often end up crashing, even Tetris seems to crash after a while. I’ve done research on forums, and these aren’t bugs in the emulation of the device, these are bugs in the device.
Let’s take a step to the side here and talk about what the device actually is. You might think it would have some of the Game Boy hardware inside it, or at least a knock-off of the Game Boy hardware. After all, the official Super Game Boy for the SNES had a CPU inside it and everything. You’d be wrong. What we have here is a pure software emulator running from the ROM inside the device. On startup the device reads the cartridge you have plugged in and dumps the content to GameBoy cartridge ROM, using the standard Gameboy mapper addresses for banking, to the Playstation’s RAM. This isn’t much different to how you’d dump the cart with a cart copier, except instead of saving the file it just copies the data into RAM for temporary use. The emulator, which as mentioned, is contained in the ROM inside Datel’s device is then executed using the copy of the game ROM that was just read out.
This instantly limits you to only games using the standard banking scheme, with a maximum of 64 banks of 8192 bytes.
Of course, the emulator is based on 1998 emulation technology too, and in 1998 emulators weren’t exceptionally good, especially not if you were having to code them for a machine with a 34Mhz processor.
That brings us to our other issue. This is slow, VERY slow. By default it has a frameskip of 2, which alone is enough to ruin the gaming experience in many cases, but even with that many frames being skipped the titles run at around half speed, if that.
So you can play only a small part of your library, with bugs, at about half the speed of a real Game Boy. Sold yet?
It has no sound either. Sound isn’t emulated, the device makes no attempt whatsoever to emulate the Game Boy sound chips, so you’re playing the games in silence. It has a CD Player option that allows you to put a CD in the Playstation’s drive and use that, but it’s hardly a substitute for the real sounds. Then again, sound emulation would have made it even slower, and sound at less than 100% speed is a lot more noticeable than video.
Now the fact that there are homebrew NES emulators for the original Playstation (they’re not great, but they’re better than this) might suggest it possible that Datel could have optimized this further, but in reality trying to emulate anything on a 34Mhz processor isn’t a great idea, you have to cut a lot of corners somewhere.
But yes, even back in the day this thing wasn’t a great product. It was a novelty, some people no doubt found it rather geeky and cool, possibly even rebellious to be running Game Boy games on their original Playstation, but it was hardly practical.
There are a few interesting things about it. First of all it comes with a built in game, Rebound Mission, and I don’t know about you, but to me a Rebound Mission sounds like something you might decide to go on for a night out after being dumped.
It’s a simple game, the main problem is it’s as slow as everything else, because it’s apparently a Game Boy game Datel wrote, and are running under their emulator. I haven’t tried extracting the ROM to see if it really is yet, but I’ll probably give it a try, it might actually be enjoyable at full speed, but at the speed it runs it’s just tedious and lacks any challenge.
So is there anything else interesting about it? Well it attempts to use the Super Game Boy borders if they’re present, which is kinda neat and unexpected, as you can see here on the Centipede / Millipede pack.
However compatibility comes back to bite us again here, as while Centipede can be played, Millipede only hangs on the title screen you see and goes no further. Again there are posts saying this happens on the hardware, so this isn’t a MAME emulation bug, it’s a bug in Datel’s emulator.
I’ve also seen some other SGB games where trying to access the Datel built in menu causes them to crash, presumably a memory issue or something.
So yes, there’s a built in menu. What does it look like?
Game, Cheat, Trainer, Palette, Options..
Palette is interesting, but ultimately a bit pointless. Let’s have a look at it being used with Tetris 2
So yes, you can swap any of the 4 basic colours for another one of your choosing..
Cheat is a set of built in cheats that you can enable for various Game Boy games (which at least gives you some indication of what is expected to run) Trainer appears to be a cheat finder type thing, and Options, is just a set of options, where you can turn the CD player on, change the frameskip level, tell it to pixel double the image, or select from 3 built in borders for the regular games.
Why emulate such a pointless device? Because we can, and because it documents a little piece of history, back in the day some people no doubt used this because it’s all they had. It shows how far we’ve come. Here are some videos.
My only closing thought on this is that it would have actually been interesting if somebody had done their own homebrew emulator that could use the cartslot, or if Datel had allowed it to load a different emulator from CD (although in both those cases you would have to use some of the Playstation’s RAM to load the emulator)
Emulating pointless things in MAME is a lot of fun.
It was also released for the N64, but with a short annoying music loop as the N64 didn’t even have a CD drive to give you that option. I haven’t looked at the N64 version (yet)
SeanRiddle read the rom from another one of the Radica plug and plays. This time, instead of using a CPU with the die marked ELAN EU3A05 like Tetris and Space Invaders, this one used a die marked ELAN EU3A14.
It’s still 6502 based, and several things are similar, but the video hardware has changed at least, this one is no longer drawing sprites / tiles from ‘texture pages’ but seems to have opted for more traditional non-tile based sprites, and likewise the tiles for the tilemap organized in ROM in a normal way.
There are enough similarities to know the hardware is of the same origins, but enough differences to make it interesting. The palette handling and sound system for example are just the same, and it looks like the I/O might be too, but the DMA controller has high bytes for size and destination, shifting other registers along, even if I can’t see how they would be useful.
The game was developed by Farsight Studios, developers of the rather infamous NES/MD game collection ‘Action 52’ (although I did like some of the games) and flawed MD title ‘Art Alive’ (which would have been so much better with battery backup at least)
That said, they’re not afraid to show their roots, and proudly advertise said titles along with all others on their website.
What makes these TV games interesting is that they’re basically going back to that simple style of game that was found on the likes of Action 52, again with somewhat limited hardware compared to other platforms that were available by the mid 2000s when these were made. Farsight also list a number of other games that were done for Radica and likely run on the same, or at least similar hardware.
Anyhow I’ve started emulating it..
The sound emulation issues (bad sample decoding, some registers not understood causing repeating sound) are a lot more obvious here, so it sounds horrible for now. Background rendering needs work, especially for the 2D view when you’ve taken your shot. Taking your shot is also difficult right now because the trackball isn’t hooked up properly, it appears to be hooked up in a way that means it triggers interrupts on the CPU as it spins, so the CPU can count them and work out how fast you’re spinning it. Each axis is a different interrupt level, 2 bits in a control port determine the direction. Seems like a primitive way to do things, although not unheard of before, I need to work out how to hook it up in MAME.
Palette also feels very slightly off, just like the other one. I think the code I have is correctly following the HSL decoding scheme, so that’s a bit of a mystery at the moment.
Before this there was another Radica game called Real Swing Golf, also developed by Farsight but without the Golden Tee license. That uses a different controller type, but otherwise looks like a very similar game, so would probably fit in the same driver if it were to be dumped.
There were also later Golden Tee Home TV games, but those were developed by Jakks and are going to be different hardware (probably XaviX or unSP based) Those aren’t dumped tho.
Radica also released some games on Megadrive / Genesis based hardware, until now only 2 of those were dumped, and were hidden away in the MAME Software List rather than being standalone systems. I’ve moved them to be proper drivers (as they’re real systems, not cartridges). Sean Riddle also dumped a ‘Sensible Soccer’ one which has been added. For some reason it disagreed a bit with the existing Radica banking scheme, but it wasn’t difficult to make it happy.
The good news is that the Sensible Soccer unit actually had 2 controllers wired in, unlike their Genesis 6-in-1 ones, and the Sonic Gold collection where there is only a single pad, and no way to connect another, meaning the 2 player options in the games (such as Sonic 2 VS mode) are entirely useless. It surprises me Sega allowed their name to be stamped on them without any attempt being made to remove the 2 player options from the menus!
*edit* here’s a video of the current Golden Tee Home Edition progress, turn your speakers down!
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.