(WIP) David Haywood's Homepage - 模擬器

Ina avatar
By Ina
at 2012-09-01T22:47

Table of Contents

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
http://mamedev.emulab.it/haze/pics2012/littlerb_2.png
http://mamedev.emulab.it/haze/pics2012/littlerb_3.png
http://mamedev.emulab.it/haze/pics2012/littlerb_4.png
http://mamedev.emulab.it/haze/pics2012/littlerb_5.png
http://mamedev.emulab.it/haze/pics2012/littlerb_6.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/

--

All Comments

BGM分享

Charlotte avatar
By Charlotte
at 2012-09-01T10:52
不然可以去市面上找得到嗎??? 一般拍賣場找的到嗎??(即使有找到 有存貨嗎??) 除了亞馬遜的網站以外 恐怕很難找到有存貨了吧? - ...

BGM分享

Dora avatar
By Dora
at 2012-09-01T10:20
※ 引述《qwerty789 (凡特斯)》之銘言: : 這款1996年出的可愛風格汽車遊戲 玩法很像SONIC+MARIO的混合 : 而且難易度甚至不亞於前2者 裡面的主角 人物甚至是反派等 都是車子阿~ : 要從紐約到拉斯維加斯才算完成一個關卡 而主角的行動 攻擊等 ...

BGM分享

Charlie avatar
By Charlie
at 2012-09-01T03:27
這款1996年出的可愛風格汽車遊戲 玩法很像SONIC+MARIO的混合 而且難易度甚至不亞於前2者 裡面的主角 人物甚至是反派等 都是車子阿~ 要從紐約到拉斯維加斯才算完成一個關卡 而主角的行動 攻擊等主要動作 皆需要耗掉油 所以GAS的多寡可是關係著 ...

ePSXe v1.7.5 for Android

Linda avatar
By Linda
at 2012-08-31T22:20
https://play.google.com/store/apps/details?id=com.epsxe.ePSXeandamp;feat ure=search_result ePSXe v1.7.5 for Android Changelog: * SBI subchannel support. ...

MD新作"Oh Mummy Genesis"10月上市

Mia avatar
By Mia
at 2012-08-31T12:56
其實這不是新聞,早在六月的時候就已經有情報流出過。 這是當年 Amstrad CPC平台的一款遊戲,後來也有移植道 其他平台上,沒想到現在要在MD這台老主機上復活,而 且畫面跟音樂都會全部重製(據說還有人設),根本可以 說是一款新遊戲了。 Wiki: http://en.wikipedia.org/wik ...