デジホリのblog

釣りと自転車とDIYを愛するオヤジのブログ

2021年03月

PC-1350がSAVE/LOADできないのでバラしてみた。

IMG_20210321_151244

そしたら、なんとカセットI/Fのコネクタ部分の配線が切れていた!
何度かバラした時に伸ばしたりしたせいで、半田付け部分が弱くなって切れていたのか。。

ということで、半田付けし直した。
しかし、最近は老眼がひどくて、細かな作業が億劫です。

なんとか修理して復帰しました。LOADもちゃんとできます。よかった!
IMG_20210321_164255


で、最近打ち込んだ Olphous と Anzas を動かしてみました。
これが Olphous
IMG_20210321_173839

こっちは Anzas
IMG_20210321_174242

ちゃんと動いた。
ちなみにコントラストを最大にしても画面が薄い。敵のミサイルがよく見えないな。

やっぱりエミュレータ+ゲームコントローラで動かすのがいいかなぁ。




Pokecom GOでゲームコントローラ(ゲームパッド)が使えるようにしてみた。
すごい快適になります。。。


 
ちなみに、Android端末はデフォルトでゲームコントローラ対応しているので、繋げれば普通に認識します。
アプリケーションでゲームコントローラのキー入力を拾うには、ハードキーイベントを受け取れる dispatchKeyEvent() もしくは onKeyDown()などのメソッドをOverrideして、特定のキー入力を検出したら内部処理を行えばいいだけです。Pokecom GOの場合はソフトキー入力処理を擬似的に行えば良いことになります。
割と簡単です。。。

ただし接続するコントローラの種類で、イベント発生時のキーコードに違いがあり、事前の調査に結構時間を費やしました。
あと動画にも映っていますが、十字キーを操作するとAndroidのシステムがボタンなどのオブジェクトのフォーカスを切り替える動きをします。これを消したいんだけどやり方がわかりませんでした。
dispatchKeyEvent()で処理をした後に、superクラスのメソッドを呼ばなければいいのかと思いましたが、そうではない感じです。
よくわからないし、とりあえず動いているのでこれでいいか。

PC-1350の本格横スクロールシューティングゲームと謳われている、「オルフォス」をPokecom GOで動かしてみました。


 
こんなゲームが作れるなんてすごいな。
感動ものです。
(動画編集でXEVIOUSのBGMを入れようかと思った:笑)
ちなみに、このゲームの元ネタはPC88のアルフォスですね。私はあまり詳しく知らないけど。


さて、ソースコードの入力ですが、いつものGoogle DocsでOCRをかけてコード生成しました。
なんか、今回はOCR精度がイマイチな感じでちょっと苦労しましたが。

で、ソースデータの確認用にちょっとしたスクリプトを組みました。
もしかしたら使う人がいるかもしれないので公開しておきます。
checksum.pl

6030 FFFF0A3000430330:AE

6038 00FF660000E00D0E:60

...

こんな感じのフォーマットで書かれたテキストファイルを入力すると、データ部分を計算してsumの値と同じかどうかチェックします。

$perl checksum.pl infile <outfile>
こんな感じで使います。
あとoutfileを指定すると同時にバイナリファイルを生成します。

$perl checksum.pl olphous.txt                             

6030 FFFF0A3000430330:AE -> AE

6038 00FF660000E00D0E:60 -> 60

!!!6040 DB0DE0D0BEBB5500:AB -> 66

6048 DEED000066F000DE:FF -> FF

!!!6050 DE0B0B8888000060:4E -> 64

!!!6058 00C083C038C0B0C0:10 -> 6B

...

こんな感じで、sumが違う行がわかります。
ついでに、0-9 A-F以外の文字があった場合もエラーを吐くようにしてます。

ということで、Pokecom GOで動かしてみたのですが、この手のアクションゲームは操作が難しすぎで、まともにコントロールできません。
ゲームコントローラをインプリしてみようかなと、マジで思いました。

あと、PC-1350の実機でも動かしみようと思ったのですが、なぜかCLOAD/CSAVEがちゃんと動かない。おかしいな。壊れたのかなぁ。(ショック)

↑このページのトップヘ