カテゴリ 重要度 ステータス 解決状況 登録日時 最終更新
グラフィック解決済み修正済み2010-02-10 07:292019-01-21 15:41
 
テスターOliver_A担当者smfソースnintendo/popeye.cpp
バージョン0.136u2発生バージョン修正バージョン0.194
修正コミットプルリク
フラグ実機・資料検証済み
セット popeye
セット詳細
popeye - ポパイ (revision D)
 
概 要スプライト描画のプライオリティなどが実機と異なる。
詳 細On the real Popeye hardware, sprite colour 0 is not transparent with respect to overlapping sprites. It's only transparent with respect to the background graphics.

When two sprites overlap in Popeye, the sprite with the highest priority COMPLETELY overdraws the sprite underlying it, including the transparent area (pixel with colour value 0). The result is that instead of proper sprite prioritzing, overlapping sprites are overdrawn like chunky blocks.

The sprite rendering code in MAME wrongly treats sprite colour 0 as transparent, which is the case in almost all games with hardware sprites, but NOT Popeye.
再現手順Play the original Popeye PCB, and see what happens when two sprites overlap. For instance, let Popeye run into Brutus. You'll see that when Popeye overlaps Brutus, he completely overdraws him, with no pixel of Britus visible below the Popeye sprite block.
追加情報I have included screenshots from my original Nintendo Popeye PCB which show the issue. The falling Popeye, when losing a life, completely overdraws the Bluto sprite.

Note that it's quite hard to photograph, but anyone else owning a real Popeye will confirm it.

The PCB is 100% working, this is no hardware glitch. It's the way how the sprite hardware is designed to cope with high resolution sprites.
 
添付ファイルzip filePopeye_Sprite.zip (2010-02-10 07:29)
zip filepopeye_pens.zip (2010-02-10 09:05)
JPG file101_9901.JPG (2010-02-10 21:14)
jpg filepopeye1.jpg (2010-02-11 03:14)
jpg filepopeye2.jpg (2010-02-11 03:14)
jpg filepopeye3.jpg (2010-02-11 03:15)
c filepopeye.c (2010-02-11 08:27)