Re: [新聞] (WIP) David Haywood's Homepage
2012.08.31
..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:
http://mamedev.emulab.it/haze/pics2012/littlerb_1.png






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:
http://www.youtube.com/watch?v=fWLdOtPaIek&feature=player_embedded
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.
______________________________________________________________________________
來源:http://mamedev.emulab.it/haze/2012/08/31/but-im-batman/
--
ポーラステーション
http://perryt0517.wordpress.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.20.92
※ 編輯: conpo 來自: 118.168.20.92 (09/01 22:47)
討論串 (同標題文章)
完整討論串 (本文為第 7 之 78 篇):
Emulator 近期熱門文章
PTT遊戲區 即時熱門文章
-11
38
13
28