今年も宮島の桜を見てきました。
普段とは違う角度からの厳島神社の大鳥居はいかがですか?w
そして別の所
川沿いの桜
大枝垂れ
そして夜桜
月と夜桜。綺麗に撮れませんね💦
今年は残念ながら造幣局の八重桜を見れませんでしたが十分堪能できました。
さて、マイコンwゲーム初期の名作
「ブラックオニキス」と続編の「ファイヤークリスタル」
のお話をさせていただこうと思います。
この2作はブラックオニキスで作ったキャラクタをファイヤークリスタルに持ち込むことが可能で
ブラックオニキスだけは実機でプレイしました。
実はブラックオニキス発売当初(1984年1月発売)はPC-8001という機種しかもっておらず
上位機種のPC-8801以降のマシンでしか出来ないブラックオニキスを
「ゲームのフロッピーだけ購入」して出来る日を待ち望んでいたという過去がありましてw
後にPC-8801MA2というPC88シリーズでもほぼ最高性能の機種を買って貰えたことでやっと自宅で遊ぶことが出来ました。
(その後…というかこの時点でもPC88シリーズの衰退とPC98シリーズの台頭はその当時のユーザーさんはご存じでしょうw)
そんなこんなで思い出深い「ブラックオニキス」と名前だけしか知らずやったこともない「ファイヤークリスタル」
プレイするにはまずキャラクタを作らなくてはいけない。
ブラックオニキスのキャラ作りは非常に簡単だが奥が深い。
キャラクタの名前と髪型と洋服を選ぶ。ただそれだけ。
でもグラフィックの極端に少ない時代はこれだけで面白かったんです。
自分の名前を付けてキャラを作る。その後は最弱装備で凶悪なレベル上げってのはお約束でしたけど
当時は10代。その位苦にならず夢中になったものです。
しかし今は令和。1980年代の少年も今は疲れたオッサンww
レベル上げなんざやってられない。チート技でクリア。

ゲーム自体の攻略法や動画は他のサイトをご参照くださいw
さて「ブラックオニキス」はクリアした後にこのようなサイトを発見。
--
【マル忍改造法】ザ・ファイヤークリスタル(PC-8801版)
テクノポリス1985年9月号に掲載されていたものに魔法レベルを上げる機能をつけた物です。
https://www.retro-game.net/roleplaying-game/firecrystal-kaizou-pc88/
--
なんと!テクノポリス誌でキャラデータ改造用のプログラムが掲載されていたんですね。
そこに魔法レベルを上げる機能を付けられて居た方までいらっしゃるとは!
その改造されたN88-BASIC用プログラムがこちらになります。
ちなみにファイヤークリスタルだけではなく、前作のブラックオニキスのキャラデータも変更可能です。
---
100 WIDTH 80:CLS
110 PRINT" FOR B.P.S CHARACTER GENERATER"
120 INPUT "BLACK ONYX(1), FIRE CRYSTAL(2)";D
130 IF D=1 THEN D$="*" ELSE D$="+"
140 INPUT "CARACTER NAME:";A$
150 A$=A$+" "
160 A$=LEFT$(A$,8)+D$
170 OPEN A$ FOR INPUT AS #1
180 DIM S(50)
190 FOR I=1 TO 43
200 IF EOF(1) THEN 230
210 INPUT #1,S(I)
220 NEXT I
230 INPUT"LIFE:";S(1)
240 S(2)=S(1)
250 INPUT"DEX:";S(3)
260 INPUT"STR:";S(4)
270 INPUT"MAGIC POWER(IF BLACK ONYX, PUSH 0)";S(17)
280 INPUT"YOUR LEVEL:";S(18)
285 INPUT"YOUR MAGIC LEVEL:";S(31)
290 CLOSE #1
300 PRINT"SAVE, PLEASE INSERT DISK AT DRIVE1"
310 INPUT"ARE YOU READY?";B$
320 OPEN A$ FOR OUTPUT AS #1
330 FOR I=1 TO 43
340 PRINT #1,S(I)
350 NEXT I
360 CLOSE #1
370 INPUT"ONE MORE CHARACTER?(Y/N)";Z$
380 IF Z$="Y" OR Z$="y" THEN RUN ELSE END
---
こちらを入力して実行しました。キャラクタ名は「massy」としました。

あれ?170行目でエラーが出る。file not found…
ファイルがあるかどうかfilesコマンドで確認するとちゃんとある。
そこで変数A$に何が入力されているのかを確認してみると…

代入されていた文字列は「massy *」
filesコマンドでキャラデータの入っているファイル名は
「massy *」
170行目でファイル名を指定してOPENさせているがこれだとファイル名が一致しない。
原因を見ると160行目
「最初に入力されたキャラクタ名」の「左から8番目の後ろ」に「ゲームの識別子を表す変数」であるD$を挿入する
(D$がどこで識別子を入れてるかは130行目)
という意味の命令文が書かれている。
この当時のPCはファイル名6文字+拡張子3文字なので普通ならこれで動くはずなのだが…
そもそもファイル名を表す変数A$に代入されていた文字列が「massy *」の7文字。
最初に入力されたキャラクタ名の最後、つまりキャラクタ名6文字+拡張子3文字になる。
BASICだとファイル名+拡張子の概念が無いので拡張子の頭につく「.」は1文字にカウントされるので合計10文字。
拡張子頭のピリオドは150行目の変数A$に空白1文字を入れることで対処しているのであろう。
本来ならファイル名6文字+拡張子3文字ルールが成立するのでキャラ名の空白部分は自動的に入力されるのだが
どうもそれがうまく作動していないのがこのエラーの原因だと判断。
なので以下の命令文を追加してみた。
141 rem ** 142-145ギョウハ ファイルメイ ノ モジスウ アワセデス.フヨウデアレバ サクジョシテクダサイ **
142 k=len(a$)
143 for i=k to 9
144 A$=A$+" "
145 next i
141行目は単なる説明。
142行目でKという変数にLEN命令でA$(キャラクタ名)の
文字数を入れる。
143行目~145行目でKの数字から9までA$(キャラクタ名)の
後ろに空白を入れる。
(massyの場合5文字なので9-5=4。4文字の空白を入れる)
これでファイル名6文字+拡張子3文字の9文字になり
150行目の「ピリオド」分を加えて10文字。
これでファイル名の左から8番目にゲームの識別子を表す変数D$を加えることで完全なファイル名が完成。
(この場合本来拡張子は「* 」なのだが1文字だと見た目上
「 *」になる。古い記憶なのでその辺はあいまいだが。)
これで実行させてみる。動いた!

入力できる数値があり得ないくらい強力な数値w
まぁゲーム自体は敵は瞬殺出来るけど謎が一杯なのでそちらを楽しんでください。
最後にボクが修正入れた物も置いときます。
---
100 WIDTH 80:CLS
110 PRINT" FOR B.P.S CHARACTER GENERATER"
120 INPUT "BLACK ONYX(1), FIRE CRYSTAL(2)";D
130 IF D=1 THEN D$="*" ELSE D$="+"
140 INPUT "CARACTER NAME:";A$
141 rem ** 142-145ギョウハ ファイルメイ ノ モジスウ アワセデス.フヨウデアレバ サクジョシテクダサイ **
142 k=len(a$)
143 for i=k to 9
144 A$=A$+" "
145 next i
150 A$=A$+" "
160 A$=LEFT$(A$,8)+D$
170 OPEN A$ FOR INPUT AS #1
180 DIM S(50)
190 FOR I=1 TO 43
200 IF EOF(1) THEN 230
210 INPUT #1,S(I)
220 NEXT I
230 INPUT"LIFE:";S(1)
240 S(2)=S(1)
250 INPUT"DEX:";S(3)
260 INPUT"STR:";S(4)
270 INPUT"MAGIC POWER(IF BLACK ONYX, PUSH 0)";S(17)
280 INPUT"YOUR LEVEL:";S(18)
285 INPUT"YOUR MAGIC LEVEL:";S(31)
290 CLOSE #1
300 PRINT"SAVE, PLEASE INSERT DISK AT DRIVE1"
310 INPUT"ARE YOU READY?";B$
320 OPEN A$ FOR OUTPUT AS #1
330 FOR I=1 TO 43
340 PRINT #1,S(I)
350 NEXT I
360 CLOSE #1
370 INPUT"ONE MORE CHARACTER?(Y/N)";Z$
380 IF Z$="Y" OR Z$="y" THEN RUN ELSE END
---
テキスト形式なのでメモ帳にコピペしてアスキー形式でエミュレータのディスクイメージに書き込みすれば使用できます。
だらだら長文読んで頂きありがとうございました。
レトロPCプロジェクトの続き~
⇒ https://ameblo.jp/massyfox/entry-12875338525.html #アメブロ @ameba_officialより
地味に前書いた奴にぶら下げて記事書いてるw
ある程度構築されたから大きくかわらないのよね。
あとはどれだけ昔のPC環境に寄せれるかだから。
進捗状況ですww
PC-8801のCDOSにファイラーがあった事を思い出す。
DMTというMS-DOSのFDライクなファイラー。
これでCDOSもMS-DOSレベルで使えるようになった!
そしてN-BASIC(PC-8001BASIC)も普通に動くようになった!
PC-8001は小学生の頃に初めて買ってもらったPCなので
エミュレータでもこうして手に出来るのは本当にうれしい。
PC-88VAの方もMSEでパワーアップさせたところにFM音源ドライバーを入れる。
そこに運よくFD Ver2.32が見つかりセッティング。
一部不具合はあるけど通常利用には問題ないレベルで動作確認。
PC-88VAがほぼMS-DOS2.11仕様になった。
あの頃はPC-9801(MS-DOS)以前のPCを98並み以上に使えるように努力したよなぁ。
それもあえてPC-88シリーズ(VA込み)で追い抜いてやろうと必死で頑張ってたw
その当時はPC-8801MA2とPC-88VA2のPC-88シリーズ最強の2台で対抗してましたねぇ…
そしてPC-9801も完全ににあの頃の環境に戻したいと思うのだけど
VZ EditorとファイラーHFの本体とCDOSのアーカイバPMAだけはどうやっても見つからない。
VZ Editorはテキストエディタとして使うだけなら代替えはMS-DOS標準のSEDITやMIFESで代用できるし
HFはFDにFEZ入れて拡張子連動を強化すればファイラーとしての役割だけは代用できる。
PMAもMS-DOS用があるのでそちらで解凍すれば良いんだけど…何かが違うんよね。
(ディレクトリ丸ごとコピー出来る上に強力な拡張子連動はHFの強味)
PC-8801に関しては
特にCDOS用PMAが見つからないのが致命的よね。
せっかくCDOSのファイラーあるのにPMA無いとCDOS内で完結出来ないからねぇ。
実機ベースで考えるとPC88他にMS-DOS実装のPC98が必要になる案件だもんな…
確かに当時、家にはPC-8801MA2、PC-88VA2、PC-9821Cb(記憶曖昧)が揃ってましたけどwww
そこにWIndows95が出てPC-9821V7を買ってすごい状況になったんだよな。
ディスプレイ置くスペースの確保に苦労したww
PC-88MA2→PC-88VA2→PC98(MS-DOS)→PC-98(Win)
並行動作〜移行時期には5台か6台のPCと2つのCRTモニタと他周辺機器やモデム数台で
部屋もすごいことになってたものだな。
それが今は1台のノートPCをWi-Fi設定で無線ネットワーク。
エミュレータでレトロPCを数台同時起動出来る。
便利な世の中になりましたなぁ。実機のFDD読み込み動作音やキーボードのタッチなどの
ハード的なものに依存する環境は犠牲になりましたけど
省スペースで最大限の環境が実現できるのがこの環境の良さとしておきましょう。
追記
昔の写真あさってたらフロッピーディスクの写真が!
真ん中で一番デカいのが8インチ。 その下にケースに入ったCD(大きさ比較用)。
右側が5インチ(正確には5.25インチ。それもMA2とVA2のシステムディスク!!)
左側のは3.5インチ。
破棄する前に撮った写真ですわ。
ある意味貴重な写真?
追記2ww
なんとひょんな所からVZ Editorが見つかり早速入れました!
HF無いかなぁ…