初期の頃のPCについて興味があり、現在MSXについて調べています。検索してもわからないことがあったのでここで質問します。
1.
市販の(一般的なゲームメーカーから販売されていた)ゲームソフトは、カセットテープ、フロッピーディスク、カードリッジのどれかの形式で販売されていたという理解でよいでしょうか?
2.
MSXではMSX-BASICが動いていたということで、カセットテープとフロッピーのデータはBASICから読み込んだりデータを見たりできるようですが、カードリッジで配布されているものは本体の改造等無しでBASICに読み込んだりはできないのでしょうか?
3.
ゲームはBASICと機械語の二種類あると思いますが、メディアに関わらず機械語で書かれているものが多かったのでしょうか?
4.
MSX2のソフトをMSXで無理やり起動すると、どういうことが起こりますか?
5.
ゲームのセーブデータは、バッテリーバックアップかフロッピーディスクかどちらかに保存されるという理解で正しいでしょうか?
以上よろしくお願いいたします。
1.初期はROMカートリッジがほとんどでした。MSX2+で3.5インチフロッピードライブが標準搭載されたことから、ディスクメディアでの販売も増えました。
2.BASICのPEEK命令で読み込めるROMカートリッジがありました。
MSXではMSX-BASICが動いていたということで、カセットテープとフロッピーのデータはBASICから読み込んだりデータを見たりできるようですが、カードリッジで配布されているものは本体の改造等無しでBASICに読み込んだりはできないのでしょうか?
3.市販ゲームのほとんどは機械語で書かれていました。PC雑誌に掲載されているフリーのゲームの多くはBASICで書かれていました。
4.ソフト起動時にマシンスペックをチェックするので、起動しません。
5.テープに保存できるものもありました。
1.初期はROMカートリッジがほとんどでした。MSX2+で3.5インチフロッピードライブが標準搭載されたことから、ディスクメディアでの販売も増えました。
2.BASICのPEEK命令で読み込めるROMカートリッジがありました。
MSXではMSX-BASICが動いていたということで、カセットテープとフロッピーのデータはBASICから読み込んだりデータを見たりできるようですが、カードリッジで配布されているものは本体の改造等無しでBASICに読み込んだりはできないのでしょうか?
3.市販ゲームのほとんどは機械語で書かれていました。PC雑誌に掲載されているフリーのゲームの多くはBASICで書かれていました。
4.ソフト起動時にマシンスペックをチェックするので、起動しません。
5.テープに保存できるものもありました。
>まずBASICを起動した後カードリッジを刺し、BASICの読み込み命令を使う、という手順で正しいでしょうか?
それで正しいです。
カートリッジをスロットに挿すと、ROMの一部が専用の16KB空間にあらわれます。
>テープのデータをBASICから読んで編集などはできたのでしょうか?
テープはシーケンシャル・リード/ライトしかないので、厳密には編集ではなく丸ごと上書きする方式でした。
確認はしていませんが、ファミコンののようにセーブデータを暗号化するゲームはあったと思います。
なるほど、ROMに関してはプロテクションや制限なく専用のROMの16KBのアドレスに自由にアクセス可能で、個人が解析しようと思えばできる、ということですね。最後に、テープのセーブデータをMSX上のBASICにシーンケンシャルリードすること自体はできますでしょうか?自分なりに調べた感じですと、セーブデータはLOAD/BLOADおよび SAVE/CSAVE 両方で扱えない形式で書かれているという情報もみかけたので、BASICではなく専用ツールを使うというあたりでしょうか?
1
基本的にはそのとおりですが
変わり種としてクイックディスクやLD/VHDとのセットなんてのもありました。
2.
本体というかロム側の特定ピンをセロテーブなどで通電しないようにして
DOS上から吸い出すソフトがあります。
BASIC自体がROMで供給されるのでアドレスの関係上DOSからでないと難しかったような
3.
大抵マシン語ですがテーブ時代のソフトはBASICも結構ありました。
初代の信長の野望とか
4.
起動しないかカセットを無視でBASIC起動かMSXのロゴで永久再起動とかでした。
5.
テープに保存が可能なのと、スロットが2つあるので
コナミと松下のSRAM内蔵カートリッジに保存が可能でした
コピーガードというか単純にメモリの割当が変わってしまうので共存できなかったような。
自前でBIOSコールして1バイトづつ読み書きになりますかね。
BASIC上からでもマシン語ルーチンを書けば読めないこともないです。
http://ngs.no.coocan.jp/doc/wiki.cgi/TechHan?page=2%BE%CF+%A5%AB%A5%BB%A5%C3%A5%C8%8E%A5%A5%A4%A5%F3%A5%BF%A1%BC%A5%D5%A5%A7%A5%A4%A5%B9
なるほど、BIOSコールを直接叩く方法がBASICでもあるので、強引なことをすればできるということですね。非常に参考になります。回答ありがとうございます。
>まずBASICを起動した後カードリッジを刺し、BASICの読み込み命令を使う、という手順で正しいでしょうか?
2014/03/23 21:11:43それで正しいです。
カートリッジをスロットに挿すと、ROMの一部が専用の16KB空間にあらわれます。
>テープのデータをBASICから読んで編集などはできたのでしょうか?
テープはシーケンシャル・リード/ライトしかないので、厳密には編集ではなく丸ごと上書きする方式でした。
確認はしていませんが、ファミコンののようにセーブデータを暗号化するゲームはあったと思います。
なるほど、ROMに関してはプロテクションや制限なく専用のROMの16KBのアドレスに自由にアクセス可能で、個人が解析しようと思えばできる、ということですね。最後に、テープのセーブデータをMSX上のBASICにシーンケンシャルリードすること自体はできますでしょうか?自分なりに調べた感じですと、セーブデータはLOAD/BLOADおよび SAVE/CSAVE 両方で扱えない形式で書かれているという情報もみかけたので、BASICではなく専用ツールを使うというあたりでしょうか?
2014/03/23 22:24:07