David Haywood's Homepage
MAME work and other stuff
August 31, 2012 Haze Categories: General News. 10 Comments on ..but I’m Batman

Little Robin by TCH is one of those games that continues to taunt MAME developers and evade emulation.

It’s not that either the game, or the hardware happen to be anything spectacular, it’s just the way everything is hooked up is rather awkward, from the sound (which Kale fixed up a few months ago) to the video.

Essentially the game has a ‘VDP’ type device, all video hardware is accessed through ports, the palette DAC, the graphical data, and the display lists.

In reality it’s just a basic layer of indirection, but it presents quite a few unknowns (correct addressing, which writes should auto-increment the target address etc.) which have slowed down emulation.

The game uploads all the graphic data to this device, so the addressing has to be correct in order to ensure data doesn’t get incorrectly erased by new data, which is what I thought was happening before hence the platforms etc. ending up corrupt after starting a game.

Now I’ve decided that assumption is incorrect, furthermore I’ve decided that the spritelist isn’t a spritelist after all, but more of a command based blitter, capable of writing data to a front buffer and a back buffer. The reason the background and platform data was being overwritten appears not to be due to bad addressing, but because it simply isn’t needed anymore, the data has been copied to the back buffer and can therefore be replaced with sprites without consequence. This isn’t an unreasonable line of thought because Wheels & Fire, and Reality Tennis, both other games from TCH are also dual framebuffer + blitter based, albeit with more direct access but a more complex blitter.

Of course this is slightly trickier to implement, and it becomes important to understand which writes are meant to trigger the ‘render’ operation (or if things should be rendered as they’re written) Layer clearances are also a problem.

I’ve started improving the driver based on these assumptions and already I’m seeing some good progress. There remain some issues tho, some ‘sprite’ (blit commands) are misaligned, presumably because I’m not correctly interpreting other commands of different sizes (the normal ‘sprites’ are 6 words, but there are other bits of data sent too and I’ve not managed to figure out how the hardware decides what the data is meant to be yet) As a result ingame looks better, but the title screen has a large amount of corruption, some backgrounds are cleared prematurely (or not cleared at all) and the HUD with the score / credits is never displayed.

Still, it’s a step closer to understanding how things work, even if the whole thing is strung together with a fair number of hacks and (incorrect) assumptions still. At least things are starting to fall into place now.

The pictures below probably make the current emulation status look a fair bit more complete than it actually is:


Little Robin Little Robin

Little Robin Little Robin

Little Robin Little Robin

The video is more reflective of how things actually are, as you can it’s still very glitchy, there’s an entire intro sequence before the game starts that you’re not seeing because my handling is wrong:


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

The game, as you can see from the video is a pure Snow Bros rip-off, using Robin Hood inspired characters, it also seems to run at a rather wacky resolution of 320×288 in 256 colours (actually it’s 336×288), something I’d more commonly associate with an Amiga; I assume it’s a PAL based video mode running at around 50hz, which is no doubt why the game is a pain to get to sync properly on many arcade monitors (and thus even harder to run tests on). I did check if the VDP / blitter was related to the Amiga’s blitter, but it doesn’t appear to be. Hopefully I can manage to get it to a stage where it works well enough to come up with some hardware tests to nail down the proper behavior and remove some of the hacks holding this together.

Oh, and for anybody wondering what happened to the MAME SVN

“Due to circumstances beyond our control, the currently hosted SVN @
svn://dspnet.fr/mame/trunk is down. This is due to a hardware error
on the host machine and as of this time it is unknown when SVN will be
back online, or if it will be hosted elsewhere. This note is to let
you know that any submissions you have in the works will not be able
to be applied until after the SVN is officially back online.”

You can still grab the latest files from the GIT mirror if needed tho, although don’t expect to see any fresh checkins until the issue with the main server is resolved.

10 Comments

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

Well,great news,keep up the good emulation work,and recently trap15 get the G-Stream G2020 full sound emulation fix,http://daifukkat.su/files/gstream.diff

@jasd
Yeah, it got added to the SVN in the last couple of days as seen in the GIT mirror.

I suppose it support Haze’s last article on how drumming up attention/complaining/talking around can help lead to a fix, as it was a thread asking for information on the G-Stream developers, which led to my bump of an RQ thread at shmups.system11.org regarding the game, which eventually led to trap15 getting interested and fixing the sound and also creating an ST thread with gameplay info not recorded anywhere else (to our knowledge).

Furthermore, research on it has led me to believe it may be possible that there is a second board of the game out there. I’ve had some suggestions that it might be a time-unlock but I’m doubtful. If anyone has seen a version of G-Stream G2020 at an arcade with the player ship actually visible on the title screen give it a go and let us know what’s different.

There seems to be some oddities with 2P inputs in it still but I’m not sure if it’s me or MAME or present in the original board. I just wish I could figure out how to compile MAME Plus properly so I can play it with autofire.

is the game working ?? it seems that all the graphics are correct will be added in next MAME version ??

thanks HAZE i liked this game :D

Well you can see the status from the video and make your own judgments. I’m not marking it as working yet due to the missing score gfx etc.

THANK YOUUUUUUUUUUUUUUUUUU!
What a progress!
I was happy,even it was incorrectly emulated,but now …..
I hope the other “so close to be emulated” Heated Barrel will take his place in the working games soon!
Off course Heated Barrel,was in much better condition than Little Robin ,and the only problem was,it “stuck” sometimes in some bosses,and completely “stuck” ,in the final boss!

PS Sorry for my english David,and my childish enthusiasm,even if i am 52 years old!

“stuck” i mean freeze,and i use to load a save game to continue,or play with two players to defeat bosses,“stuck” in the corner,an using cheat with unlimited bombs!
lol,ok it is not a normal way to play,but it was the memories made me do it so!

Any recommendations on a good SVN client for Windows 7 to use? A fancy gui is not necessary.

Heated Barrel is a more difficult problem because it’s protection, Little Robin is just a case of understanding the video hardware properly.

For SVN I use Tortoise SVN, can’t say it’s the most fantastic piece of software ever (things like TSVNCache seem to like to slow things down due to constantly scanning the folders while compiling, and it can be a bit crashy at times) but it’s functional enough and reliable enough to have stuck with it.

I’ve further improved this so that the ingame HUD is visible, I’ll put a new video up shortly

Damn, I was wondering when you’d get that honey pot or whatever.

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.

Close