クレイジー・クライマー専用コントローラーの自作

前回の続き

nicotakuya.hatenablog.com

 

ファミコンクレイジー・クライマー専用コントローラー」を作ってみました。

デュアルショック2をファミコンにつなぐだけの回路なので、厳密にはコンバーターです。

デュアルショック2は機能が豊富で、安くて入手しやすいので採用しました。

下の動画の3番目に出てきます。

 

www.youtube.com

動画の2番目に出てくるスーパーファミコン用コントローラーの接続回路は前回に紹介したものと同じです。

 

 

「12way pad converter」の基板を再利用してます。設計ミスがあって、いくつかパターンをカットしないといけません。今回で「13way」になったので、以後は「multi-way pad converter」に改名したいです。

制御に使っているのは、AVRマイコンです。まだ、実験段階なのですが、安全を確認できたら資料を公開したいです。

コンバーターの動作原理は次の通りです。

デュアルショック2のボタン情報を読み込む。

・拡張端子を通じて、ファミコンにボタン情報を送る。

これを1/60秒周期で繰り返しています。ボタン情報をソフト的に90度回転させているので、ゲームパッドを縦に持つ必要がありません。しかし、プレイ中、隠し部屋に入った場合、ゲームバッドを逆に回転させないと遊べなくなります。この問題は未解決です。

デュアルショック2はアナログのレバーが2本付いているので、これを割り当てることも可能ですが、何百回も高速に上げ下げするのでレバーが壊れてしまいそうな気がします。

 

nicotakuya.hatenablog.com

ファミコン版「クレイジー・クライマー」を外部コントローラーで遊ぶ

ファミコン版「クレイジー・クライマー」。プレイヤーを操って、ビルを登っていくアクションゲームです。

 

一応、念のために説明しておくと、ファミコン版「クレイジー・クライマー」は2つのコントローラー(ゲームパッド)を縦に持って操作します。コントローラー1は左手側、コントローラー2は右手側です。右手・左手を上下に動かすと、ビルを登ることができます。

実際に遊んでみたところ、左手側のコントローラーがうまく握れない。コントローラーを床に置くべきか? はたまた、「クライマースティック」を装着すべきか?

 

(2022/6/3追記)オリジナル版にはないファミコン版に追加された新要素。ステージの途中でアイテムを取ると、隠し部屋に入ることができます。ここではプレイヤーがジャンプできるようになり、コントローラー1を横に持って遊びます。ややこしすぎる。

 

いまさら気が付きましたが、ファミコン版「クレイジー・クライマー」は外部コントローラーに対応しています。説明書に書いてないので、備え付けのコントローラーでしか操作できないものだと、ずっと勘違いしていました。

上の写真は拡張端子に外部コントローラーを2つ接続した例です。

 

ファミコンの拡張端子は外部コントローラーを同時に2個接続できるように設計されているのですが(頑張ったら4個)、一般的な外部コントローラーは1個ぶんしか使っていません。なので、上記のようなマルチタップを使って、端子を2つに増やします。ホリ製「4プレイヤーズアダプター」の2Pモードに相当します。

 

自分の場合、ファミコン用の外部コントローラーを持っていないので、変換器を自作してスーパーファミコン用コントローラーを付けてみました。スーファミ用コントローラーは通信するデータが16ビットですが、前半の8ビットで打ち切ってしまえば、ファミコン用コントローラーとして使うことができます。

 

プレイ中の様子。

コントローラーは縦に持つ必要があります。備え付けのコントローラーよりも持ちやすいので、少しだけマシになりました。

この技術を応用すれば、「クレイジー・クライマー専用コントローラー」も製作できると思います。ファミコン版「クレイジー・クライマー」が再評価される日も近いかもしれません。

 

ちなみに、こちらはスーパーファミコン版「ニチブツアーケードクラシックス」に収録されている「クレイジー・クライマー」。この他に「ムーンクレスタ」と「フリスキートム」が収録されています(計3本)。お得すぎる。

これはアーケード版にとても忠実な出来。コントローラー1個で操作できるので、縦に持つ必要はありません。

 

nicotakuya.hatenablog.com

 

メガドライブゲーム開発記事の補足(SGDK 1.7)

前回の続きです。

nicotakuya.hatenablog.com

 

メガドライブ用開発環境「SGDK」の最新バージョン「1.70(2022年2月公開)」をダウンロードしてみました。

以前、雑誌/書籍用に作った「shooting」をリビルドしてみました。統合開発環境はCodeBlocks 20.03を使用しています。

やたらと「D:¥apps」フォルダを参照しているのが、意味不明です。どうやったらこれを止めさせることができるんでしょうか?

あと、Warningが一杯出るようになってしまいました。原因は不明。実害がないので、そのまま使っても大丈夫そうですが、

(修正前)

VDP_setPaletteColors(PAL0, (u16*) spdata.palette->data, 16);

(修正後)
PAL_setPalette(PAL0, spdata.palette->data, CPU);

こんな感じで置き換えると、Warningを1つ減らすことができます。知らない間に「vdp_pal.h」が「pal.h」に変わっていました。

 

大問題が発生。

実行してみると、スプライトが全て表示されなくなってしまいました。

main.c内の次の行を書き換えます。

(修正前)

VDP_waitVSync();

(修正後)
SYS_doVBlankProcess();

 

ビルドすると、スプライトが正常に表示されるようになりました。

GitHubで確認したところ、SDGK 1.60(2020年12月公開)からサンプルプログラムも「VDP_waitVSync」から「SYS_doVBlankProcess」に書き換わっていました。

 

ゲームの吸い出しの話

スーパーファミコンのゲームを読み取って複製したいのですが、できますか?

みたいなメールを受け取ったんですが、、、何なんだろう?

私のことを違法コピーの無料コンサルタントか何かと思っているんでしょうか? そういう人だと思われてるのか? ゲーム開発用としてカートリッジ基板の自作を3年ほど続けてきましたが、その結果がコレってのが、もう残念すぎです。

メールを受け取って既に数日が経過しているのですが、まだ怒りが治らないので、これを書くことにしました。

 

ゲームの吸い出し行為が合法か? 違法か?

自分は「違法」だと思ってます。コピーツール(吸い出し機やマジコン)がまっとうなお店で売ってないことを考えれば明らかです。レトロフリークもこれに該当すると思います。海外旅行のお土産でコピーツールを買ってみれば、もっとハッキリすると思います。

しかし、Amazonで検索すると、コピーツールがゾロゾロと出てきます。最近だと秋葉原のショップで「Cartridge Reader」というのが売られています。普通に売っているってことは、税関を通過してるということでしょうか? 不思議です。当然のように売っているので、罪の意識が薄い人が居るのでしょうか? だったらそれらを買えばいいだけで、私にメールする必要はないのでは。

 

上の写真は「デジゲー博2018(2018年11月開催)」のIMPACT SOFTさんのブースで売っていた「FC Bus-EmulatoR」。

撮影した時はこれが何なのか全くわかりませんでした。

 

gamernium.com

開発元、GamerniumさんのWebページより。上記のページの注意書きでは、「ゲームのアップロード/ダウンロードは違法です」程度にとどまっています。まあ、同人なので、法的なグレーさは許されてると思います。

 

私の解釈としては、吸い出し行為は違法です。

ただし、自分の持ってるゲームを吸い出して、自分で遊んでいるだけなら、問題ないと思います。違法行為ですが、告発する人は居ません。密造酒を自分で作って、自分で飲んでいる状態と同じと考えていますが、果たして良い例えなのかどうか。

 

アルカディア用カートリッジ基板の自作

アルカディア用のカートリッジ基板を自作してみました。

以下のページに作り方を公開しています。

sites.google.com

youtu.be

動画。

 

仕組みはシンプル。5V動作可能なフラッシュメモリをバスにつなぐだけです。

初の試みとして、超薄型ユニバーサル基板をカードエッジとして使ってみました。が、接触の信頼性が良くないので、プリント基板を作った方がいいです。

 

自作したフラッシュメモリライター。Pi STARTERで動きます。

 

関連

nicotakuya.hatenablog.com

nicotakuya.hatenablog.com