Re: [新聞] (WIP) David Haywood's Homepage

看板Emulator (模擬器)作者 (楽園にお連れ給う)時間12年前 (2012/09/01 22:47), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串7/78 (看更多)
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/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.20.92 ※ 編輯: conpo 來自: 118.168.20.92 (09/01 22:47)
文章代碼(AID): #1GGX_lg8 (Emulator)
討論串 (同標題文章)
文章代碼(AID): #1GGX_lg8 (Emulator)