問題1.ディスクイメージからMegaROMを作りなさい。
という問題がやっと解けました。
11月25日
MSX2で動きました。
動作テストに使った機種は、PanasonicのFS-A1。10年位押入で冬眠していた初代MSX2です。
FM音源も漢字ロムも無いので、かなりしょぼいですが、ゲームはちゃんと動いてます。
RCはtR専用に作られているので、MAIN-ROM、RAM、MSX-MUSICのスロットは固定です。
そのため他の機種では動作しません。でもちょっと手を加えれば、MSX2でも動きます。
本当はゲームの作者さんがちょこちょこっと直して下さると良いのですが・・・
私がRCのROM版を作った理由は、
「特殊なハードを使わずにゲームが動くなら、ゲームを販売できるのでは」と思ったからです。
11月22日
対戦画面が真っ黒な原因がわかりました。必要なファイルが無かったのでした。
RCのディスクには、98個のファイルが入っていますが、BATファイルではその中から
81個のファイルをRAMディスクにコピーしていました。たぶんゲームに必要なファイルは
それだけなのでしょう。
起動に時間がかかるため、LUNAを使い全ファイルをRAMディスクにコピーする新しいBATが
出来たようです。現在のディスク版RCはLUNAを使っています。
ROM版は旧BATを参考にファイルを移しましたが、ファイルが3つ足りなかったのです。
ということは、旧BATで起動すると対戦画面が真っ黒になるのかな。
ROM版RCが完成しました。
でも起動に時間がかからない程度の効果しかないみたいです。
・ファイルの読み込みに時間がかかり過ぎ。
読み出すファイルが多いのに、200hバイトずつ読んで、1バイトずつ転送とか。
・MSX2では動かない。
I/OポートのA5とかE6を使っているから?
ファイル関係はなんとかしたいです。ROM版ではDD00h〜F2FFhが空くので、そこをディスク
バッファに使うとか。なんとかできるかも。
11月18日
対戦画面が真っ黒な原因をあれこれ考えてみました。
・対戦に必要なファイルが読み込まれていない。
・画面表示関係の問題
ファイルが正確に読み込まれているか、VRAMを調べてみました。RCはVRAMをページ
0〜3に分割しています。対戦中にMSXをリセットして、BASICからページ2と3の
画面を表示してみると、それぞれのページにはプレイヤー1,2のキャラクタがロード
されていました。ページ0,1がちょっと怪しいですが、ファイル関係は白かも。
やはり画面表示の問題かも知れません。
解析中に発見したこと。
神様の居所。プレイヤー選択で、いきなり神様が使えそう。
各プレイヤーの攻撃力等、パラメータの在処。
このゲーム、ROM版にすればいいのに > 作者さん
11月13日
RCのBASICプログラムで必要なのは、SCREEN5とパレットデータのロード、COLOR=( )
くらいです。BASICから起動する意味がないかも。
ROM版は起動が速くて快適です。動けばね。
対戦画面が出ないんです。真っ黒のまま。
何が原因なのだろう。
11月10日
久しぶりのプログラム書きで苦戦していました。BDOS#27です。
RCのディスクアクセスは、ファイルを200hバイト読んでは転送の繰り返しなのです。
小さいファイルが多いのだから、一気に読んでしまえばいいのに。
これでは手抜きできない。
というわけで、メガROMからファイル転送した後FCBのランダムレコードを更新したり、
本物みたいな作りになってしまいました。
試行錯誤の末、ファイル読み出しはディスク版RCなみに出来るようになりましたが、
肝心なゲームの方が・・・
一応起動してタイトルも出るしプレイヤー選択も出来ます。
ゲーム画面が変です。背景が変わらないし。
BASICの部分を全部実行していないのが原因ですね。
パレットデータをロードしていません。
COLOR=RESTOREって?
SET PAGEがわかりません。
SCREEN5を使ってる他のゲームを解析してみようかな。
11月1日
ゲームに使う約80個のファイルを似非SCCに移しました。
いつものようにSHEMを使って手作業で入れようとしましたが、さすがに80個は多すぎ
ます。それでROM用BDOS#26を作ってファイルをROMに書き込み。BANK 01h〜37hに全部の
ファイルが入ってしまいました。予想より小さかったです。
今日の作業は、ROM用#27の動作テストも兼ねていますが、うまく動作するようです。
次はBASIC部分のマシン語変換です。
COLORやSCREENはなんとかなりますが、SET PAGEは?パレットデータはどこにロードする?
10月22日
ちょっと変わった作りのディスクゲームがあります。仮称'RC'というゲームです。
ディスクアクセスの遅さをカバーするためか、RAMディスク対応になっています。
「DISKイメージからROMを作りなさい」なんていう問題が、どこかに書いてあったので、
RCを512KBのメガROMに作り替えてみようと思います。また変なことを始めました。
もしかしたら512KBに収まらないという落ちがあるかも知れませんが、そんなことは気に
していません。
RCはBASICからマシン語プログラムをLOADしているので、ROM版もBASICスタートにしようか。
でもRCはページ2をRAMにしておかないといけないし。
光栄のメガROMみたいに、BANK1からNECフォーマットのディスクイメージが丸ごと入っ
ているような形にしようか。こうすると512KBに入らない。
結局INITからスタートする普通のメガROMを作ることにしました。
BASIC部分をマシン語に作り替える問題が発生しますが。苦手な部分は後回し。
RCは約80個のファイルで構成されています。ファイルはそのままの形でROMに詰め込んで
行き、ファイルの場所を記録するディレクトリの様な物を作ります。RCはディスクの読み
出しに、BDOSの27hとビットブロック・トランスファの01A5hを使っています。
まずはディスク読み出しルーチンの代わりに、ROM読み出しルーチンを作らなければ。
好きな所から作り始めるのが私のやり方。
久しぶりにアセンブラを使いましたが、やっぱり変な物を作っているときが一番幸せかも。
戻る