2024年03月02日
「MuSICA」の著作権
「うにスキー」さんのホームページで『「MuSICA」ドライバーのライセンスについて』記事をたまたま見かけました。
自分のゲームでも「MuSICA」使っているので、何の気なく読みました。
そしたら「あれ? これMuSICA使ってる作品って公開できないんじゃないの?」ってなりました。
自作ゲームで、今公開している以降に作成したゲームの多くは、音源として「MuSICA」を利用しています。
なぜか?
理由は簡単、当時、音楽作ってもらってた仲間が「MuSICA」使いだったから…。
うーん、どうしようか?
「MuSICA」削除して自前の「BGM演奏ルーチン(高機能版)」に載せ替えて公開するか?
でも、MMLは打ち直す必要がある…。
そんなことしてる時間もないしなぁ…。
ちょっと考えます。
ひょっとしたら、過去ゲーム公開ここで終了するかも。
2024年01月26日
公開状況
以前に作成した、過去制作ゲームタイトル一覧の公開状況を更新しました。
年 | 年 | タイトル | ジャンル | 公開 | |
1 | 1986 | 1 | STAR FIRE | シューティング | 済 |
2 | 1986 | 2 | INVIT BLOCK | アクション | 済 |
3 | 1986 | 3 | A INVIT | シューティング | 済 |
4 | 1986 | 4 | STAR SHIP | シューティング | 済 |
5 | 1986 | 5 | CAR RACE | レーシング | 済 |
6 | 1987 | 1 | LOSE MAN | 迷路 | 済 |
7 | 1987 | 2 | GOLD MAN | アクション | 済 |
8 | 1987 | 3 | MOGRA | アクション | 済 |
9 | 1987 | 4 | A INVIT2 | シューティング | 済 |
10 | 1987 | 5 | SUPER ARROW | アクション | 済 |
11 | 1987 | 6 | SUPER ROBOT | シューティング | 済 |
12 | 1987 | 7 | BOUND | スポーツ | 済 |
13 | 1987 | 8 | SUPER SHOT | 射撃 | 済 |
14 | 1987 | 9 | POP & POP | アクション | 済 |
15 | 1987 | 10 | SUPER APPLE RUNNER | アクション | 済 |
16 | 1987 | 11 | SECRET | シューティング | 済 |
17 | 1987 | 12 | POP | シューティング | 済 |
18 | 1988 | 1 | SPACE | アクション | 済 |
19 | 1988 | 2 | TOWER | アクション | 済 |
20 | 1988 | 3 | SECRET2 | シューティング | 済 |
21 | 1988 | 4 | WONDER BOY | パズル | 済 |
22 | 1988 | 5 | UCHIAI | シューティング | 済 |
23 | 1988 | 6 | DRAGON | アクション | 済 |
24 | 1988 | 7 | POP2 | シューティング | 済 |
25 | 1988 | 8 | FLOGER | アクション | 済 |
26 | 1988 | 9 | BATTLE FIELD | シューティング | 済 |
27 | 1988 | 10 | ALIEN | アクション | 済 |
28 | 1988 | 11 | TETRIS | パズル | 済 |
29 | 1989 | 1 | DRAGON BUSTER | ロールプレイング | 済 |
30 | 1989 | 2 | SOLGER | シューティング | 済 |
31 | 1989 | 3 | GALAXY WARS | アクション | 済 |
32 | 1989 | 4 | PACMAN | アクション | 済 |
33 | 1990 | 1 | VOLLEY | スポーツ | 済 |
34 | 1990 | 2 | PENGUIN | スポーツ | 予定 |
35 | 1990 | 3 | TETRIS-S | パズル | 予定 |
36 | 1990 | 4 | MOGRA2 | アクション | 予定 |
37 | 1990 | 5 | SPRITE EDITOR | ツール | 済 |
38 | 1990 | 6 | FONT EDITOR | ツール | 済 |
39 | 1990 | 7 | MAP8 EDITOR | ツール | 済 |
40 | 1990 | 8 | MAP16 EDITOR | ツール | 済 |
41 | 1990 | 9 | TONE ORGAN | ツール | 済 |
42 | 1990 | 10 | VOICE RECORDER | ツール | 無 |
43 | 1990 | 11 | COPY TOOL | ツール | 無 |
44 | 1990 | 12 | GRAPHIC TOOL | ツール | 無 |
45 | 1990 | 13 | SAVIOUR | シューティング | 無 |
46 | 1990 | 14 | VS ー秋の大運動会ー | シューティング | 無 |
47 | 1991 | 1 | 戦国学園 | シミュレーション | 無 |
48 | 1992 | 1 | ケベロン ー勇者誕生ー | アドベンチャー | 予定 |
49 | 1993 | 1 | 激走 | アクション | 予定 |
50 | 1993 | 2 | ILLUST TOOL | ツール | 無 |
51 | 1993 | 3 | シーテット | パズル | 予定 |
52 | 1993 | 4 | ケベロン ー魔石破壊伝ー | パズル | 予定 |
53 | 1994 | 1 | グォース | パズル | 予定 |
54 | 1994 | 2 | Jump! | アクション | 予定 |
55 | 1994 | 3 | ねこにゃん | アクション | 予定 |
56 | 2023 | 1 | The Dungeon of NoReturn −戻らずの迷宮ー | ロールプレイング | 済 |
おおー、だいぶ公開終わりましたね。
2023年12月29日
便利「.BAS」ファイル読込ツール!
先日「探そうかな」と言っていた、「.BAS」ファイルが読み込め、編集(コピー&ペースト)機能のあるツールを発見しました!
「MSX BASIC Viewer」です。
やっぱりありました!
Windowsソフトウェア版と、Web版があるので、私はWindowsソフトウェア版をインストール。
早速「.BAS」ファイルを読込。
おぉ、文字化けせずに読み込めた!
折角なので、MSXフォントを利用。
機能は「コピー&ペースト」と「検索」、「アスキーセーブ」、「RTF形式で保存」のみ。
残念ながら「置換」や、「文字色の部分変更」は出来ません。
それでも、煩雑になったロジックの入替をするには必要十分。
「置換」や、「文字色の部分変更」がしたければ、「アスキーセーブ」若しくは「RTF形式で保存」が出来るので、Excel若しくはWordに取り込めば可能ですしね。
うーん、有志の方々凄いですね。
とことん痒いところに手が届いています。
欲を言うなら、イメージディスク内のファイルを直接開ければ嬉しい。
毎回、「Disk-Manager」でBASファイルを取り出さないといけないので、それはそれで面倒です。(贅沢)
「MSX BASIC Viewer」です。
やっぱりありました!
Windowsソフトウェア版と、Web版があるので、私はWindowsソフトウェア版をインストール。
早速「.BAS」ファイルを読込。
おぉ、文字化けせずに読み込めた!
折角なので、MSXフォントを利用。
機能は「コピー&ペースト」と「検索」、「アスキーセーブ」、「RTF形式で保存」のみ。
残念ながら「置換」や、「文字色の部分変更」は出来ません。
それでも、煩雑になったロジックの入替をするには必要十分。
「置換」や、「文字色の部分変更」がしたければ、「アスキーセーブ」若しくは「RTF形式で保存」が出来るので、Excel若しくはWordに取り込めば可能ですしね。
うーん、有志の方々凄いですね。
とことん痒いところに手が届いています。
欲を言うなら、イメージディスク内のファイルを直接開ければ嬉しい。
毎回、「Disk-Manager」でBASファイルを取り出さないといけないので、それはそれで面倒です。(贅沢)
2023年12月27日
サブルーチン集
以前言ってたExcelでプログラム組んで、BlueMSXで読み込むオペレーションが、ほぼ確定しました。(2023年7月22日記事参照「イメージディスクツール「Disk-Manager」」)
そこで、今までに組んだサブルーチンをサブルーチン集としてExcelにまとめてみました。
今後はこのサブルーチン集を基に、制作するゲームによって不要なサブルーチンを削除したプログラムを、ベースプログラムとして開発を始めます。
でも、片道なので1回「.BAS」ファイルにしてしまうと、もうExcelには戻れません。
後で「このサブルーチン忘れてた!」とかあれば、入力し直さないといけないし、他のプログラムで作ったロジックを組み入れたい時も入力が必要になります…。
一番やりたいのは、ロジックの入替。
今回の3Dロールプレイングゲームでもそうですが、私のやり方(ハンドアセンブル)の場合、バグフィクスがあったりすると、1つのロジックが細切れになってあちこちに点在してしまいます。(スクリプトなど。)
入替実現のためには「.BAS」ファイルを読み込め、コピー&ペーストが出来る機能が最低限必要です。
うーん、そう考えるとやっぱり「.BAS」ファイルを読み込めないと、あまりメリットがありませんね。
「.BAS」ファイル読み込んで編集できる便利ツールを、有志の方が制作していないかな?(他力本願)
また時間のある時に探してみます。
2023年12月08日
MSX1のお絵描きツール(for Windows)
以前にも書いた通り、MSX1のSCREEN2は非常に独特な仕様になっており、横8ドット毎2色のグラフィックモードとなります。
「BMP to MSX」でコンバートした画像を編集したいのですが、上記仕様が邪魔をしてWindowsのお描きツールでは上手く編集できません。
そこでダメ元でMSX1用のお絵描きツールがないか探しました。
なんと、ありました!!
TMS9918風簡易ペイントツール「piroPAINT 9918」です
MSX1専用ではありませんが、TMS9918系VDPにおける描画特性(俗に言う「色漏れ」)を見事に再現したWindowsソフトです。
少し操作に特徴がありますが、色漏れの再現は完璧です。
「BMP to MSX」でコンバートした画像を一度「BMP」ファイルで出力し、それを「piroPAINT 9918」で編集。
編集画像を再度「BMP to MSX」でコンバートする事で、そのまま「SC2」にコンバートできます。
なんかもう有志の皆さんの補助的なツールが豊富で、至れり尽くせり状態ですね。
もの凄い痒いとこまで手が届く的な?
凄く助かります。
「BMP to MSX」でコンバートした画像を編集したいのですが、上記仕様が邪魔をしてWindowsのお描きツールでは上手く編集できません。
そこでダメ元でMSX1用のお絵描きツールがないか探しました。
なんと、ありました!!
TMS9918風簡易ペイントツール「piroPAINT 9918」です
MSX1専用ではありませんが、TMS9918系VDPにおける描画特性(俗に言う「色漏れ」)を見事に再現したWindowsソフトです。
少し操作に特徴がありますが、色漏れの再現は完璧です。
「BMP to MSX」でコンバートした画像を一度「BMP」ファイルで出力し、それを「piroPAINT 9918」で編集。
編集画像を再度「BMP to MSX」でコンバートする事で、そのまま「SC2」にコンバートできます。
なんかもう有志の皆さんの補助的なツールが豊富で、至れり尽くせり状態ですね。
もの凄い痒いとこまで手が届く的な?
凄く助かります。
2023年11月30日
プログラムのロジック
ゲームで「こういうことがしたい!」と思いロジックを考える時、閃いたロジックにより、プログラミングの難度や、処理速度、プログラムの長さが全然変わります。
結果は全く同じなのに、それを実現するプログラムのロジックは全く違う訳です。
そこがプログラミングの面白いところです。
ただ、全く閃かない時もあります。
そんな時は、無駄に長く、効率の悪いプログラムを組んでしまいます。
後で、「あれ?なんでこんなロジック組んでるの!?」と、猛省する事も…。
例えば、今制作中の3Dロールプレイングゲームのシステムメッセージの表示で、今回、アイテム名+メッセージの表示を組みました。
アイテム名が10桁で、後ろにスペースが付いているのでそれを除いて表示するロジックです。
私は今回、アイテム名をワークにセットし、10桁目から前に(9桁目)スペースかどうかチェックをかけて行き、スペースでなくなった位置から、残りのメッセージをワークにセットし、VRAMに一括転送して表示するロジックとしました。
特に問題はありませんが、桁が変動する部分を前に持ってこなければならないため、回復薬を使った時にこのロジックだと「25たいりょくが、かいふくした。」としか表示できませんし、合成用のメッセージルーチンを専用に組まなければなりません。
他の方法としては、メッセージデータとして「たいりょくが、〇〇〇かいふくした。」と用意しておき、〇部分にゼロサプレス若しくは左詰めで3桁の数値をセットし、表示する際VRAMに一括転送するのではなく、1文字ずつスペースかどうかチェックしながら転送すれば良いです。
これだと他のメッセージ表示ルーチンと共通で使えます。
ただ、この場合メッセージ中にスペースは含められません。
(&H20以外にスペースFONTを用意して、それをメッセージ中のスペース代わりにする事で対応可。)
今回反省点は、標準のメッセージ表示ルーチンがあるのに、それを使わずなぜわざわざシステムメッセージ表示専用のルーチンを作ってしまったのか…!?
言い訳ですが、一応毎日更新しているので、深く考慮できていません。
最初の方に組んだサブルーチンは、ほぼ忘れています。
でも、ここまで進んでしまったので、もう今更修正する気力はありません…。
こんな感じでロジックを考えていきますが、時々、自分でも驚くような、もの凄い効率的なロジックを組むことが出来ます。
凄い感動です。
こうしてプログラミングにハマっていくのでした…。
2023年11月24日
メモリの問題
今回MSX1でロールプレイングゲーム作って、改めて感じましたがやはりメモリが厳しい…。
DISK-BASICだと約23kバイトくらいしか使えない…。
まぁ、FONT読込用に4kバイト(&HB000~&HBFFF)空けてるから、そこがまだ使えると言えば使えますが…。
うーん、そう言えばファミコン版の「ドラクエ」ROM容量が64Kだったかと思います。
MSX1版の容量って、どなたかご存じでしょうか?
32kバイト程度だったなら、凄いけど…。
マップスクロールの歪さから察するに、マップデータ圧縮かけて、展開しながら描いてるっぽいですね。
やむを得ないけど、なんかすごい違和感のあるスクロールですからね。
そう考えると、確かにMSX1でメガROM使っていないロールプレイングゲームは少ないですね。
テープ版の「ハイドライド」や、ROM版の「ウルティマ」「ザナドゥ」位なのかな?
キャラクタデータの容量の少ないARPGだし。
以前にメモリ不足に悩んで、断念したMSX1版ロールプレイングゲーム「デビルズバスター」の事を書きましたが、マップ10面位作って、動くイベント(町人等)20個以上作ってたらメモリ不足になりました。
FONT読込をデータとカラーに分けて&HB000~&HB7FFまでにして、残りはプログラムエリア。
しかも、戦闘ロジックは敵FONTを読込、設定し終わった後、&HB000~&HB7FFに読み込んで実行するというデータロード時間を犠牲に色々やったのですが、結局、どう考えてもやりくりできない状態になりました…。
ディスク使ってるので、マップの広さや数、敵のグラフィックなんかは、どうとでもなるのですが、一度に読み込めるデータ量に問題があります。
なんといっても、イベント関連の変数は、マップ移動してもメモリ内に残しとかないといけないので、容量食います…。
特に移動するイベント(町人)だったので、1つのイベントにワーク10バイト程度、移動のロジックが結構とんでもなく多かった覚えがあります。
あとスクリプト命令。
イベントの動作を凝らしていった結果、アニメーションさせて移動させたりする命令がバンバン増えて、それに比例しプログラムも増大。
マップを増やせば増やすほど、イベント数がどんどん増えて行って、結果イベント管理用のメモリも増えてしまうという…。
まぁ、メモリ気にせずイベント配置しまくった自分が悪いんですが…。
この時、MSX1の機能だけでの製作を諦めて、MSX2の機能使ってれば問題なかったんですが、やっぱりMSX1での制作にこだわってしまいました。
ここで仕事でWindowsでのプログラミングが始まったこともあり、プライベートでもWindowsでのゲーム制作に移行してしまいました。
2023年11月06日
「ゲーム制作」40回突破!
「ゲーム制作」も、ついに40回を迎えました。
まさかこんなに長丁場になるとは思ってもいませんでした…。
制作よりも不具合対応の方が時間がかかっている気がする。
EDITORのマウスが使えないから始まり、メモリ不足対応など…。
まだまだこれから「イベント発生」、「システムメニュー」、そして最大の難関「戦闘」が残っています。
本業が忙しく相変わらず開発速度は亀の歩みとなりますが、完成まで頑張るのでお付き合いください。
まぁ、MSXのプログラミングを思い出す第一作目として、題材にロールプレイングゲーム選択した時点で、間違いだったような…。
プログラミングの勘を取り戻すだけなら、サクッとアクションゲームでも作っておけばよかったんですよね。
なんでロールプレイングゲームにするかな?
でもまぁ、おかげで勘を取り戻すどころか、進化している気さえします。
昔は結構悩んだ気のするロジックも、なんだかサクサク組めている気がします。
しかも、以前にロールプレイングゲーム作ってた時は、スクリプトもここまで完成度の高い物じゃなかった気がします。
このスクリプトを使えば、アドベンチャーゲームと、ロールプレイングゲーム(命令の追加は必要ですが)は比較的簡単に制作できると思います。
これは、Windowsで制作していたツールで、色々鍛えられたおかげでもあります。
「努力は裏切らない」と言う言葉をなんか思い出しました。
2023年10月22日
MSXエミュレータ
2023年10月20日
MSX1
制作中の3Dロールプレイングゲームですが、今までBlueMSXのMSX2+環境で開発しておりました。
特にそれで困らないのでそうしていたのですが、ふと「本当にMSX1環境で動作するのかな?」と思ってしまいました。
そこで、MSX1環境に設定し、起動。
…動かん!
え? なんで?
MSX2の機能使ってないよ!?
慌てて調べてみると…、使ってました…。
SCREEN1.5にするロジックと一緒に、SPRITEモードを2にするロジックが入っていました。(SPRITEモード2はMSX2の機能です。)
そらダメだ…。
SCREEN1.5にするロジックだけ残して再起動!
おぉ! 今度はちゃんと動作しました。
MSX1
んー? なんか、色合いが違うなぁ…。
MSX2+
MSX1の方が色が薄い…。
何の違いなんだろう?
まぁ、とりあえずMSX1環境で問題なく動作することが確認できました。
このままこの環境で制作続けます。
特にそれで困らないのでそうしていたのですが、ふと「本当にMSX1環境で動作するのかな?」と思ってしまいました。
そこで、MSX1環境に設定し、起動。
…動かん!
え? なんで?
MSX2の機能使ってないよ!?
慌てて調べてみると…、使ってました…。
SCREEN1.5にするロジックと一緒に、SPRITEモードを2にするロジックが入っていました。(SPRITEモード2はMSX2の機能です。)
そらダメだ…。
SCREEN1.5にするロジックだけ残して再起動!
おぉ! 今度はちゃんと動作しました。
MSX1
んー? なんか、色合いが違うなぁ…。
MSX2+
MSX1の方が色が薄い…。
何の違いなんだろう?
まぁ、とりあえずMSX1環境で問題なく動作することが確認できました。
このままこの環境で制作続けます。