Looking at some old arcade platformers, I never noticed before how nasty the scrolling is in Bionic Commando (1987), 30fps is nasty for scrolls, blurs whenever you move, this looks like jerky 20fps or lower. Running on a 10MHz 68000 at only 256*224 too, would expect 60fps.
-
Näytä tämä ketju
-
It'd be interesting to see what hardware it runs on, it's as though it's software scrolling rather than hardware though this seems weird for 1987.
1 vastaus 0 uudelleentwiittausta 2 tykkäystäNäytä tämä ketju -
Vastauksena käyttäjälle @WizkidCoder
Let's find out together! First things first, we pop open src/mame/drivers/bionicc.cpp and have a look at the machine config. In this case, it's even worse: The 68000 is 12MHz! https://github.com/mamedev/mame/blob/master/src/mame/drivers/bionicc.cpp#L375 …
1 vastaus 0 uudelleentwiittausta 1 tykkäys -
Vastauksena käyttäjille @TheMogMiner ja @WizkidCoder
Based on line 400 - MCFG_DEVICE_ADD("spritegen", TIGEROAD_SPRITE, 0) - we see that it uses Capcom's "Tiger Road" sprite system. But it's pretty simple, and doesn't handle the tilemaps: https://github.com/mamedev/mame/blob/master/src/mame/video/tigeroad_spr.cpp … So, back to bionicc.cpp, let's look at the address map!
2 vastausta 0 uudelleentwiittausta 1 tykkäys -
Vastauksena käyttäjille @TheMogMiner ja @WizkidCoder
These three lines here look promising: https://github.com/mamedev/mame/blob/master/src/mame/drivers/bionicc.cpp#L176 … So it appears we have 4k of "tx" video RAM (whatever that is) mapped at 0xfec000, 16k each of foreground and background video RAM, starting at 0xff0000, and 2k of palette RAM at 0xff8000. On to ../video/bionicc.cpp!
1 vastaus 0 uudelleentwiittausta 1 tykkäys -
Vastauksena käyttäjille @TheMogMiner ja @WizkidCoder
As an afterthought, there appear to be 8 bytes of scroll registers, handled by the handler "scroll_w", mapped at 0xfe8010. Sounds promising, but it must be in src/mame/video/bionicc.cpp, as it's not in the driver source itself. https://github.com/mamedev/mame/blob/master/src/mame/drivers/bionicc.cpp#L173 …
1 vastaus 0 uudelleentwiittausta 1 tykkäys -
Vastauksena käyttäjille @TheMogMiner ja @WizkidCoder
Here we have the meat and potatoes of the video, but pretty stingy meat and potatoes they are indeed - other than the PROM-based priority mixer, it seems pretty straightforward, including scroll_w: https://github.com/mamedev/mame/blob/master/src/mame/video/bionicc.cpp … You're right - the game is probably just badly coded.
1 vastaus 0 uudelleentwiittausta 1 tykkäys -
Vastauksena käyttäjille @TheMogMiner ja @WizkidCoder
Thanks to MAME's core tilemap system, it's only a couple hundred lines long, and I'm almost 100% certain you can pretty easily infer the whole functionality of it. But if you have any questions, feel free!
1 vastaus 0 uudelleentwiittausta 1 tykkäys -
Vastauksena käyttäjälle @TheMogMiner
I feel like trying the ZX Spectrum version again to see which has a higher framerate I'm that shocked. Not that software scrolls are easy at such low MHz. Nice to see some detective work btw :D
1 vastaus 0 uudelleentwiittausta 0 tykkäystä
Happy to help! And I'd love to see some side-by-side comparison screenshots. :D The even crazier thing is that it's got a Z80 running at ~3.57MHz just to handle audio. So the 68k isn't even getting bogged down with that.
-
-
Vastauksena käyttäjälle @TheMogMiner
Good point, it reminds me of seeing Strider 2 (not the arcade one, but computer sequel) on the Amiga and despite having hardware scrolling it ran in a tiny window at low fps. Always easy to find fault when you're not the coder though.
0 vastausta 0 uudelleentwiittausta 0 tykkäystäKiitos. Käytämme tätä aikajanasi parantamiseen. KumoaKumoa
-
Lataaminen näyttää kestävän hetken.
Twitter saattaa olla ruuhkautunut tai ongelma on muuten hetkellinen. Yritä uudelleen tai käy Twitterin tilasivulla saadaksesi lisätietoja.