看板 Emulator 關於我們 聯絡資訊
2019.03.30 "The Importance of Alternate Versions" One of the things I picked up with the money that was donated is the following JAKKS Pacific Spiderman, which has a different, much more boxy looking shell than the more commonly seen one with GameKey port (and the later release of the same form with the port removed) https://mamedev.emulab.it/haze/pics2019/olderspider_small.jpg
Spiderman 5-in-1 JAKKS Various sources indicated that Spider-Man 5-in-1 started life as a game running on the SunPlus SPG110 based SoC (System on Chip), not the 2xx (usually 240) type SoCs found in all the GameKeyReady units. I felt due to the vastly different form factor here, which appears to be an earlier and less refined design (closer to the early SpongeBob unit, which is on even earlier hardware) that there was a good chance that the device pictured would be the version running on the SPG110 hardware. It was. While this contains exactly the same games as the already emulated GameKeyReady version it is useful for some very important reasons. Firstly, the Classic Arcade Pinball title is also running on SPG110, and was never ported to SPG2xx to my knowledge. The (undumped, but sourced) EA Sports units also run on SPG110. The problem is, SPG110 actually differs from SPG2xx in some significant ways, not least it uses an entirely different palette format (HSL based instead of RGB based) and also has somewhat different video capabilities (Video RAM is private, only writable with the CPU via DMA / port uploads, sprite format is different, tile base register is shared, not per layer, priorities are per tile, not per layer, transparency handling is done with a separate table, not upper bit of palette etc.) Having the same game on two different pieces of hardware makes it much easier to draw conclusions about how the unemulated hardware works by comparing code, data structures in RAM, register writes etc. between the two versions, thus telling us plenty about the previously undocumented and not fully understood SPG110. This has allowed me to implement many features of the SPG110 hardware, to get this version booting. Note, the colours are not 100% correct yet, I’ve asked Olivier Galibert if he can look into it further as HSL decoding is not my strong point. On the left is the SPG110 set that I’ve been making improvements to, on the right is the SPG2xx set that is already emulated. This kind of reference for the colours in an already correctly emulated version is going to be an essential guideline for improving the decoding. https://mamedev.emulab.it/haze/pics2019/spdolder0.png
https://mamedev.emulab.it/haze/pics2019/spdnewer0.png
https://mamedev.emulab.it/haze/pics2019/spdolder1.png
https://mamedev.emulab.it/haze/pics2019/spdnewer1.png
https://mamedev.emulab.it/haze/pics2019/spdolder2.png
https://mamedev.emulab.it/haze/pics2019/spdnewer2.png
Left: SPG110 hardware version with currently imperfect HSL decoding Right: SPG2xx hardware version with correct RGB decoding As you may have noticed, both screens show sprites, and last time I showed Classic Arcade Pinball shots, it was lacking in sprites. Needless to say, it now has sprites with the recent work done. https://mamedev.emulab.it/haze/pics2019/capb_new_1.png
https://mamedev.emulab.it/haze/pics2019/capb_new_2.png
https://mamedev.emulab.it/haze/pics2019/capb_new_3.png
https://mamedev.emulab.it/haze/pics2019/capb_new_4.png
SPG110 emulation improvements have given Classic Arcade Pinball sprites and controls Again colours are still imperfect, but fixing Spider-Man should fix them here too. I also added inputs so you can actually play the game. Sound is unemulated, but seems to be closely related to the SPG2xx stuff (probably with less channels) so I did some refactoring of all the SPG2xx code in the process, splitting various internal peripherals into sub device modules (including the I/O which is how I was able to hook up inputs easily here) Interestingly videos show a shadow on the ball for this game, yet the hardware does not seem to have shadow sprite capability as SPG2xx does, so I’ m currently puzzled about how that is being pulled off, it could be some raster interrupt abuse like that one SNES game does, but we’ll see. (I’m assuming there aren’t multiple versions of this on different hardware anyway, I didn’t think to take pictures of my unit running before sending it off to Sean for dumping) The earlier version of the ‘Disney’ Plug and Play might also run on SPG110, the one we sourced and had dumped is the less common GameKeyReady unit (which works fine in MAME) but I still need to do a proper update about that (it’s supported in 0.208 tho) Anyway, going to leave it at that for now, hopefully if the colours can be further fixed it will be more worthwhile showing screenshots later. I just wanted to highlight why buying this alt version of Spider-Man was a gamble that paid off in terms of it enabling me to make progress on other things too. https://mamedev.emulab.it/haze/ -- ポーラステーション http://perry0517a.blogspot.tw/ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.82.44.69 ※ 文章網址: https://www.ptt.cc/bbs/Emulator/M.1554175104.A.02C.html
srwcc: 長知識了有這遊戲,酷 04/03 16:32