DIY FCカートリッジのサンプルプログラム修正

https://sites.google.com/site/yugenkaisyanico/diy-fc-cartridge

数か月ぶりに自作ファミコンカートリッジのサンプルプログラムの不具合を修正しました。

f:id:nicotakuya:20200709103148j:plain

動作が正常な場合

正常に動くと、こんな感じですが、、、。

 

f:id:nicotakuya:20200709104520j:plain

異常な場合。パターンテーブルが壊れてる

その後、ファミコン本体のリセットボタンを押すと、こんな感じに表示が化けてしまいました。これはPPUが動作中にパターンテーブルを書き換えようとして、書き換えに失敗するという現象です。

対策としては、

(1)VBlankが発生するまで待つ。

(2)スプライトとBGの表示をオフにする。

という処理を電源投入直後に追加しました。こうすれば、安全にパターンテーブルを書き換えることができます。

この不具合は実機だけで発生するので、発見が遅れてしまいました。修正版のプログラムはすでに公開済みです。

愚かなバイヤーは購入

Ali Expressで検索してみたのですが、ゲームは99%が違法コピーという凄まじい状態ですね。いや、100%かもしれない。

「Super Maruo(Marioではない)」とか「烈火」とか「Gimmick!」が売ってるところ見ると、コピーする側が何がレアなのかしっかり理解しています。「ロックマン」のハックロムをわざわざ売ってたりとかカオスすぎます。

 

f:id:nicotakuya:20200705135659p:plain

愚かなバイヤー

とあるショップで

「愚かなバイヤーは購入!」

 というフレーズを発見。「バイヤー」はお店の店員じゃなくて、お客のことを指してるようです。

これはパッと見ると意味不明ですが、原文が

「stupid buyer don't buy!!(バカな客は買うな!!)」

なので、逆の意味に翻訳されています。

最初、何に対して「バカ」なのか、意味がわかなかったのですが、 どうやらコピー品であることに気付かない客はバカ、ってことなんですね。

過去に「コピー品だ」とクレームが来て、それで逆ギレしてるのでしょうか。文化の違いを感じます。

 

 

 

ベーマガ1991年3月号「アルケー」

f:id:nicotakuya:20200708142841j:plain

29年前のベーマガ

29年前のベーマガですが、この世で2人くらいしか知らないネタがあるので、書いておこうと思います。

 

f:id:nicotakuya:20200708152722p:plain

ベーマガ1991年3月号

ベーマガ1991年3月号に掲載された「アルケー」。このプログラムの作者は私です。

プログラムを友達のE君に見せたら、

「これ、ベーマガに送っていい?」と聞いたので、

「いいよ」と返事をしたのが、事の始まりです。

E君は文章を書き、プログラムの注釈を「キョウリョク マツバラ」に修正して、投稿しました。

自分は「絶対に載らないだろう」と、たかをくくっていたのですが、それが掲載されて、原稿料まで取られてしまって、ショックを受けました。これで友情が壊れることは無かったんですが、、、。

これを機に自分もベーマガに投稿するようになりました。

そうしたら、2か月後の5月号には自分の「ニルナノーグ」が掲載されて、次の6月号には「カモーン」が掲載されました。

その6月号の本文がこちら。↓

f:id:nicotakuya:20200708142506p:plain

ベーマガ1991年6月号

『「アルケー」みたいな短編の名作を作ってみたいよ、**君。』

本当の作者は自分だよという、E君だけに通じるネタでした。

 

 


アルケー(ベーマガ1991年3月号)

ゲームラボ2020年春夏

f:id:nicotakuya:20200701103452j:plain

スキャナで電子化

「ねこたこ」のインタビュー記事が載っていると聞いたので、ゲームラボを買ってみました。今どきのゲームラボって、半年に1回くらい出てるんでしょうか。

さっそく読もうと思ったのですが、、、文字が小さすぎて読めません。写真も小さいし、何が何だかわからない状態。思った以上に自分の老化が進んでしまってます。

しかたないので、スキャナで読み込んでからPCで読みました。手間がかかるので、インタビューだけ。

スキャンスナップで読み込むのがベストかと思うのですが、1000円近くするので、裁断するのがもったいないです。電子版が欲しいです。

 

追記。2020/9/29

Kindle版が売っていることに気がつきました。

 

 

RetropieのX1エミュレータでプログラムを動かす

昔、自分が作ったBASICのプログラムをRetropieのX1エミュレータで動かしてみました。

f:id:nicotakuya:20200630012512j:plain

ラズパイでX1エミュレータを実行

 

実行までの手順を紹介します。

まず、ベーマガプログラムリストを見ながら、テキストエディタで入力するところから始めます。保存後のファイルの拡張子は「****.TXT」とします。特殊文字を入力できないのが難点です。

入力後、Windowsコマンドプロンプト(DOS窓)で以下のコマンドを実行します。

・TXTファイルの改行コードを変換

TXT_UTL /R2 /C ****.TXT ****.BAS

 

・ブランクのディスクイメージを作成

X1FORMAT イメージファイル名.2D

 

・ディスクイメージにアスキー形式で書き込み

X1SAVE イメージファイル名.2D ****.BAS /A

 

、、、なのですが、ツールの作者さんのWebページがもう無くて、残念ながら入手することができません。自分の場合はHDDを漁ったら出てきたので、使うことにしましたが、他の方々はもう、2D系を辞めて、D88系のツールを探したほうがいいかもしれません。

 

f:id:nicotakuya:20200630020120p:plain

16bitのプログラムを実行すると出るエラー

ここで新たな問題が一つ出てきたのですが、MSがもう16bit版MS-DOSのサポートを打ち切っていて、上のようなエラーが出てしまいます。今のWindowsは昔のWindowsと別物になっています。

そこで、「MS-DOS Player for Win32-x64 console」というエミュレータを使ってみました。これは16bit版MS-DOSエミュレータです。エミュレータを使うために、もう一つ別のエミュレータを使うという泥沼状態、、、。

 

f:id:nicotakuya:20200630020306p:plain

MS-DOS Playerで16bitプログラムを実行

MS-DOS Playerの使い方は非常にシンプルで、「msdos ~」と頭に付け足すだけです。

あっさりと動いてしまいました。これを作った人は本当に凄いですね。

それから、RetropieでX1エミュレータが動くように設定します。設定方法は検索したら出てくると思います。X1エミュレータは「lr-x1」という名前ですが、「X millennium」の移植版のようです。

先ほど作った2DファイルをRetropie/roms/x1フォルダに置きます。

そして、起動用にHu-BASICのイメージファイルも置く必要があります。Hu-BASICは大きく分けてX1用とX1turbo用の2種類があって、さらに細かいバージョンに分かれています。

Hu-BASICはX68000と違って、フリー化されていません。

自分は古いラズパイ2を使っていますが、処理落ちは無いように見えます。そもそも、X1のBASICが遅いのですが、、、。

 


カモーン for X1turbo(ベーマガ1991年6月号)

Windows用のX millenniumで動かすとこんな感じです。

 

(追記2020/07/20)

X1SAVEを使わない方法もやってみました。

nicotakuya.hatenablog.com