Video wird geladen...
Video konnte nicht geladen werden
さてと、ファミコン版でもやろうかな。
49,284 Aufrufe • vor 6 Monaten •via X (Twitter)
21 Kommentare

ファミコン版の早送りしてない物をyoutubeにアップしてみた。

オリジナルのプログラムは伝え聞かれる情報通りハンドアセンブルという感じ。 スプライトドライバという概念は無く、用途ごとに固定のスプライトを使っている。 マップ処理は基本的にシーンごとに独立している。 ドル袋の取得処理もシーンごとに別処理。

ハンドアセンブルなので仕方がないが、結構オペランドにジャンプしている箇所があった。 白いジョーカーに関しては、これが原因では無いように見えたがどうなんだろう?

勝手移植のX68版はジョーカーが出てこなかったが、ジョーカーの出現判定は16bitのマップカウンタをCPではなくSBCで比較しておりその時にキャリーをクリアしておらず、z80から68000にコンバートした時点でキャリーが反転してしまったのではと予想する。

全体的に処理は軽くかなり余裕がある感じ。ピラミッドが若干重い程度。 2プレイ時の海の復帰処理が、他の所と違ってその場復帰では無いっぽい?

ファミコン版に関しては基本的には機械的なコンバート。 元々の処理が軽いので多少重くなっても平気。 当然高速化の余地はあるが、処理落ちしないのでやる意味がない。 引き算のキャリーの反転がかなりのネック。離れた場所やサブルーチンの返り値がキャリーになっていたりすると見落としやすい。

6502からZ80に変換するとかなり重くなることが予想されるが、Z80から6502への変換は思った以上に速度は速い。ただし容量が結構増える。

表示は画面を90度倒せばほぼほぼそっくりに出来たと思うが、さすがにそれは無いので、左右の書き換えのみっともなさを許容し、若干レイアウトを変えて対処。 BG系はかなり手抜きで仮想VRAMを実際のVRAMに5フレーム掛けて転送。

これにより、書き換え場所により描画が最大4フレーム遅れる。よって得点が変化する物は若干問題がでる。BG書き換えに関しては松竹梅の案があったんだけど、一番簡単な梅案でやった。 オリジナルハードのスクロールはMDのコラムスクロールのみといった仕様。MDは16ドットだがこちらは8ドット単位。

色々使えそうな機能ではあるが、ステータス表示の固定と画面上部のスピードの違う雲くらいにしか使ってない。 ファミコンではマッパー2で作っている都合上、一番初歩的な0爆弾で対処。 下のドル表示を上に持ってきたのもこのため(もちろん画面ドットの制約もあるが)。

マッパー2でもDPCMの割り込みを使えば比較的自由にラスターを切れるが、若干VBLANKが少なくなり今回はギリギリまでVRAM転送に使いたかったので、使用せず(ディスクリート音源をDPCMでやる事も考えていたのもある)。

スプライトは結構横並びが激しいので点滅させて対処。 オリジナルのBGカラーは(縦画面で)横1列ごとに抜け色含む4色の8個のパレットを自由にセットできる仕様。 ファミコンでは2キャラ単位で4個のパレットしか選べないので、下から1つおきにパレットを拾って4つになったら終わりにしている。

スコアの色が変わるのは下からパレットを拾っているから。 ビルではパレット境にドル袋が配置されてしまう個所が多数あり気になったのでスプライトを重ねて誤魔化している。ビル以外にもあるが気にならないのでそのまま。 海の小島もパレット境だがここのみ特殊処理をして島っぽく見えるようにしている

音関連のオリジナルは簡易的なサウンドドライバ+直実装といった感じ。効果音は大抵直にPSGのレジスタをいじって音を鳴らしている。 移植に際しては単純にPSGの123を矩形波12、三角波に割り当て。周波数の変換は面倒なので行わなかったが、やってもそんなに重くはないのでやっても良かったかも。

ハードウェアエンベロープはソフトウェアで代用。APUのハードウェアエンベロープはPSGと若干仕様が違っていて使えなかった。 三角波は音量が使えないので(若干使えるけど)、一部の効果音がちょっとキビシイ(弾撃ち音とアンコウのSE)。

ディスクリート音源は爆発系はノイズで代用。PSGとぶつかる時はディスクリート優先。エンジン音は仕様が良くわからなかったので省略。 そういえばピラミッドクリアのファンファーレは楽器として大砲を使う「序曲1812年」の引用だと思うけど、ディスクリートの爆発音と合うから使ったとかなのかな?

追記。 オリジナルは星をハードで描画していたが移植版は余ったスプライトを全部使用して描画。点滅は適当。 敵やプレイヤーが画面上部に行った時はスコアの裏に隠れる仕様だが、キャラが上に来た時にプライオリティが高い黒いスプライトを8枚画面上部に表示する事でそれっぽく見えるようにしてある。

めちゃくちゃやりたい!!

超絶やりたいです🤩✨

JUMPBAGファミコン版あるんですね!

(。´・ω・)? ファミコン版…
