やっとマウスで各ツールが使えるようになりました!
あぁ…、マウス操作って楽…。
この間までジョイスティックでポチポチ打ってたのが、なんと馬鹿らしいことか…。
そういえば、実は昔「FONT EDITOR」に追加機能を加えてる途中で、MSXでの開発が終わった経緯があります。
どんな機能だったかと言うと、「自由描画モード」です。
「FONT EDITOR」右側のフリーエリアに、キャラクタを並べてそこで「自由描画モード」にすると、普通にお絵かきが出来ます。
キャラクタ上で描いた絵は、そのままフォントデータとしてフォントエリアにも反映するという、優れものになる構想でした。
この機能は巨大ボスキャラや、ロールプレイングゲームの敵キャラクタを、方眼紙を使わずに楽にデザインできないかと考え、思いついた機能でした。
これをやりかけてた証拠に、前段として「ブロック描画」機能を付けてます。(GRAPHICのを左クリック)
多分、この構想を知らなければ「この機能は何?」と思われたと思います。
「ブロック描画」でキャラクタを配置し、そこへ「自由描画モード」で絵を描けるようにする構想でした。
今後もMSXの開発続けるなら、改めて実装したい機能ですね。
2023年07月31日
2023年07月30日
BlueMSXでマウスが動いた!!
前回の実験で、マウスが動作することが確認でき、何が原因なんだろうと考えていました。
そんな時、ふと、昔はジョイパッドをポート1に、マウスをポート2に刺しっ放しだったなぁ…と、思い出しました。
その状況だったなら、ひょっとしたらマウスのポート判断してない(若しくはバグがあっても気付いていなかった)可能性はないのかな?と、思い当たりました。
うーん…。(プログラム検証中…。)
あれ?
選択したコントローラー?b?、マシン語にPOKEする値がおかしい…。
150行で、キーボードだけを判断する必要性が不明。
これマウスだけ判断と間違ってるかも…。
プログラム修正…。
…う、動いたー!!
こんなことか…。
悩みに悩んだ1ヶ月が…。
まぁ…、そんなもんですね…。
マウスが動かないのを、MSXエミュレーターのせいにしてスイマセン。
…これ、本当に実機でちゃんと動いてたのか?
元々マウス専用だったのを、一度マウスが壊れた時、ジョイスティック対応したのですが、マウス購入後マウス対応に直し忘れたか…。
うーん、自作プログラムをオープンにせず、限られた環境での動作検証しかしてこなかった悪影響が、今更出ました。
マウス使うツール(「FONT EDITOR」、「SPRITE EDITOR」、「MAP8 EDITOR」)修正して、修正版を公開します。
でも、今動いて良かった。
後日公開予定のツール「MAP16 EDITOR」は現状マウス専用なので、マウス動かなければ公開不可でした。
実は前述3ツールも、元々は全てマウス専用でした。
先程書きましたが、ある日、マウスが壊れて動かなくなった時、次のマウス購入するまでの間、ジョイスティック対応させただけなのです。
その時必要のなかった「MAP16 EDITOR」のみジョイスティック対応漏れた感じです。
不具合解消したので、「MAP16 EDITOR」をツール公開する際には、他のツールと合わせてジョイスティック対応にします。
そんな時、ふと、昔はジョイパッドをポート1に、マウスをポート2に刺しっ放しだったなぁ…と、思い出しました。
その状況だったなら、ひょっとしたらマウスのポート判断してない(若しくはバグがあっても気付いていなかった)可能性はないのかな?と、思い当たりました。
うーん…。(プログラム検証中…。)
あれ?
選択したコントローラー?b?、マシン語にPOKEする値がおかしい…。
150行で、キーボードだけを判断する必要性が不明。
これマウスだけ判断と間違ってるかも…。
プログラム修正…。
…う、動いたー!!
こんなことか…。
悩みに悩んだ1ヶ月が…。
まぁ…、そんなもんですね…。
マウスが動かないのを、MSXエミュレーターのせいにしてスイマセン。
…これ、本当に実機でちゃんと動いてたのか?
元々マウス専用だったのを、一度マウスが壊れた時、ジョイスティック対応したのですが、マウス購入後マウス対応に直し忘れたか…。
うーん、自作プログラムをオープンにせず、限られた環境での動作検証しかしてこなかった悪影響が、今更出ました。
マウス使うツール(「FONT EDITOR」、「SPRITE EDITOR」、「MAP8 EDITOR」)修正して、修正版を公開します。
でも、今動いて良かった。
後日公開予定のツール「MAP16 EDITOR」は現状マウス専用なので、マウス動かなければ公開不可でした。
実は前述3ツールも、元々は全てマウス専用でした。
先程書きましたが、ある日、マウスが壊れて動かなくなった時、次のマウス購入するまでの間、ジョイスティック対応させただけなのです。
その時必要のなかった「MAP16 EDITOR」のみジョイスティック対応漏れた感じです。
不具合解消したので、「MAP16 EDITOR」をツール公開する際には、他のツールと合わせてジョイスティック対応にします。
2023年07月28日
BlueMSXでマウス動かず!(実験プログラム)
先日書いた、BIOSの「GTPAD」で単純に値のみ読み込んで表示するプログラムを作ってみました。 (2023年7月26日記事参照「 BlueMSXでマウス動かず!(プログラム見直し)
」)
こんな単純なプログラムです。
マウスに合わせてマウスポインタを移動させ、その座標を表示するプログラムです。
座標の表示には、Laboratoryテーマ??5「 16ビットアドレス値の10進数表示 」を利用しています。
実質、マウス値取得とカーソル表示は、330行〜420行です。
いざ、実験!
う、動いた!!
えー…。
何で動いたんだろう??
「SPRITE EDITOR」のプログラムから、マウス値取得とカーソル表示部分を抜き出して、座標表示を追加しただけのプログラムなのに…。
でもこれで動いたってことは、やっぱりどこかに問題があるんだよなぁ…。
うーん…、違いがあるとしたら、「GTPAD」をコールする時、装置IDをAレジスタに代入しますが、このAレジスタに直接値を代入しているか、変数(コントローラー選択値)から代入しているかくらいの違いしかないです。
それで動かないなんてことはないと思うんだけどな…。
こんな単純なプログラムです。
マウスに合わせてマウスポインタを移動させ、その座標を表示するプログラムです。
座標の表示には、Laboratoryテーマ??5「 16ビットアドレス値の10進数表示 」を利用しています。
実質、マウス値取得とカーソル表示は、330行〜420行です。
いざ、実験!
う、動いた!!
えー…。
何で動いたんだろう??
「SPRITE EDITOR」のプログラムから、マウス値取得とカーソル表示部分を抜き出して、座標表示を追加しただけのプログラムなのに…。
でもこれで動いたってことは、やっぱりどこかに問題があるんだよなぁ…。
うーん…、違いがあるとしたら、「GTPAD」をコールする時、装置IDをAレジスタに代入しますが、このAレジスタに直接値を代入しているか、変数(コントローラー選択値)から代入しているかくらいの違いしかないです。
それで動かないなんてことはないと思うんだけどな…。
2023年07月26日
BlueMSXでマウス動かず!(プログラム見直し)
未だ「FONT EDITOR」でマウス動きません…。
そろそろ3DダンジョンRPG、敵のグラフィックを考えたいんですが…。
と、言う訳で「FONT EDITOR」のプログラムを見直してみました。
マウス位置の取得には、BIOSの「GTPAD」(&H00DB)を利用しています。
実機では動いていたはずなので、問題ないはずなのですが…。
エミュレーターとマウスの相性が悪いのかと考え、SONYのMSX2+本体に付属していたグラフィックツールを使って実験。
マウス選択…。
おぉ、マウス使える…。
…やっぱり、自作ツールのみ動かない状態ですね。
何が悪いんだろう?
「GTPAD」が悪いのか?
BIOSだし、そんなことあるのか?
うーん、一度「GTPAD」で単純に値のみ読み込んで表示するプログラムを作って、ちゃんと動作するか試してみる事にします。
そろそろ3DダンジョンRPG、敵のグラフィックを考えたいんですが…。
と、言う訳で「FONT EDITOR」のプログラムを見直してみました。
マウス位置の取得には、BIOSの「GTPAD」(&H00DB)を利用しています。
実機では動いていたはずなので、問題ないはずなのですが…。
エミュレーターとマウスの相性が悪いのかと考え、SONYのMSX2+本体に付属していたグラフィックツールを使って実験。
マウス選択…。
おぉ、マウス使える…。
…やっぱり、自作ツールのみ動かない状態ですね。
何が悪いんだろう?
「GTPAD」が悪いのか?
BIOSだし、そんなことあるのか?
うーん、一度「GTPAD」で単純に値のみ読み込んで表示するプログラムを作って、ちゃんと動作するか試してみる事にします。
2023年07月22日
イメージディスクツール「Disk-Manager」
とても便利なツールを発見しました。
「Disk-Manager」です。
MSXのイメージディスクを作るツールです。
元々使っていた「MSX Floppy Disk Manager」と同様のツールなのですが、こちらはフロッピーディスクを経由せずに任意のファイルをまとめてイメージディスクが作成できます! (2023年3月24日記事参照「 ディスクの中が見れた… 」)
例えば、プログラム(*.BAS)と画像ファイル(*.SC2)がWindows上にあり、それを一纏めにしてディスクイメージ(*.DSK)を作りたいとします。
「MSX Floppy Disk Manager」では、2つのファイルを一旦、フロッピーディスクにコピーしてからイメージディスクを作成します。
「Disk-Manager」は、上図のようなエクスプローラー風画面に2つのファイルをドラッグ&ドロップし、そのままイメージディスク化することが可能です!
簡単だし、イメージ化も早い!
因みに、先日のアルファもこの方法でイメージディスク化しました。 (2023年7月15日記事参照「 簡易MMLコンパイラ 活用例 」)
MSXはWindowsのテキストエディタで行?b?付けてテキストを書き、そのファイルをイメージディスク化すれば、そのままプログラムとして開けます。
「MSX Floppy Disk Manager」では、フロッピーディスクに一回落とす必要があり、手間だし時間も掛かるのでしませんでしたが、こんなに簡単なら私が以前言っていたWindowsライクな開発環境が片道ではあるが実現できるかも!? (2023年6月15日記事参照「 MSXでプログラミング 」)
あ、でも逆は出来ないんですね。文字化けがヒドイ…
でも、片道だけでも便利です。(というか、逆は要らないかな?)
テキストエディタでプログラム作って実行の際にディスクイメージ化する方法なら、コピーや置き換え、検索も出来てしまう...。
なんなら、EXCELで作れば、アドレス指定部分に色付けられるので、もっと便利ですね。
よし、一度実験。
EXCELにプログラムを記述。
折角なので、フォントに「Gigamix」さんの配布されている「MSX-WIDTH40J」フォントを利用させてもらいました。(「 リンク 」にあります)
良い感じです!
「Gigamix」さん、素敵なフォントをありがとうございます!
変数部分の色の変更も可能!
なんなら、コメントまで入れられます!!
それをテキスト形式で保存。
メモ帳で開くとこんな感じ。
いけるかも!
最後これを「Disk-Manager」でディスクイメージ化して、BlueMSXで開きます。
おぉ! 成功です!
開くのに少し時間かかったけど、問題なく開きました!
凄い!!
本格的に大作作る際には、もの凄く便利かも。
「Disk-Manager」です。
MSXのイメージディスクを作るツールです。
元々使っていた「MSX Floppy Disk Manager」と同様のツールなのですが、こちらはフロッピーディスクを経由せずに任意のファイルをまとめてイメージディスクが作成できます! (2023年3月24日記事参照「 ディスクの中が見れた… 」)
例えば、プログラム(*.BAS)と画像ファイル(*.SC2)がWindows上にあり、それを一纏めにしてディスクイメージ(*.DSK)を作りたいとします。
「MSX Floppy Disk Manager」では、2つのファイルを一旦、フロッピーディスクにコピーしてからイメージディスクを作成します。
「Disk-Manager」は、上図のようなエクスプローラー風画面に2つのファイルをドラッグ&ドロップし、そのままイメージディスク化することが可能です!
簡単だし、イメージ化も早い!
因みに、先日のアルファもこの方法でイメージディスク化しました。 (2023年7月15日記事参照「 簡易MMLコンパイラ 活用例 」)
MSXはWindowsのテキストエディタで行?b?付けてテキストを書き、そのファイルをイメージディスク化すれば、そのままプログラムとして開けます。
「MSX Floppy Disk Manager」では、フロッピーディスクに一回落とす必要があり、手間だし時間も掛かるのでしませんでしたが、こんなに簡単なら私が以前言っていたWindowsライクな開発環境が片道ではあるが実現できるかも!? (2023年6月15日記事参照「 MSXでプログラミング 」)
あ、でも逆は出来ないんですね。文字化けがヒドイ…
でも、片道だけでも便利です。(というか、逆は要らないかな?)
テキストエディタでプログラム作って実行の際にディスクイメージ化する方法なら、コピーや置き換え、検索も出来てしまう...。
なんなら、EXCELで作れば、アドレス指定部分に色付けられるので、もっと便利ですね。
よし、一度実験。
EXCELにプログラムを記述。
折角なので、フォントに「Gigamix」さんの配布されている「MSX-WIDTH40J」フォントを利用させてもらいました。(「 リンク 」にあります)
良い感じです!
「Gigamix」さん、素敵なフォントをありがとうございます!
変数部分の色の変更も可能!
なんなら、コメントまで入れられます!!
それをテキスト形式で保存。
メモ帳で開くとこんな感じ。
いけるかも!
最後これを「Disk-Manager」でディスクイメージ化して、BlueMSXで開きます。
おぉ! 成功です!
開くのに少し時間かかったけど、問題なく開きました!
凄い!!
本格的に大作作る際には、もの凄く便利かも。
2023年07月20日
ゲームと三角関数
今回「Laboratory」で説明した、「自機に向かって飛んでくる敵弾」もそうなんですが、シューティングゲームや、アクションゲームなどのゲーム制作には三角関数がかなりの割合で付きまといます。
敵の動きが真っ直ぐ自機に向かってきたり、曲線(円や波状)を描くように動けば、それは(多分)三角関数です。(パターンデータの可能性もあるが...)
ただ初心者は、「三角関数って直角三角形の辺の長さや角度を求める数式だよね?」
「そもそも、三角関数をどう使えばああいう動きが出来るの?」
と、悩むと思います。(私もそうでした。)
特に数学不得手な人には、三角関数は非常に難しい問題かと思います。
まぁ、そういった動きをしないジャンルのゲーム(ロールプレイングゲームとかアドベンチャーゲーム、パズルゲームとか。)を作っていればいいんでしょうが…。
でも、やっぱりシューティングゲームやアクションゲームも作りたいですよね?
となると、現状必須の知識と思われます。
今回、Laboratryで取り上げるに当たり、いろんな言語のいろんな解説サイトを回りましたが、新しい言語用の解説しかなく、言語中で当たり前のようにsinだのcosだの使ってて、何の参考にもなりませんでした…。
逆に「これだけプログラム中で三角関数の計算していて、この速度で動作するんだ…。」って、感心してしまいました。
しかも、そのプログラムで弾幕シューティングまで作れてしまうなんて…。
CPUの処理能力高すぎ…。
うーん、敵毎、弾毎にそれだけ三角関数使って計算していたら、昔のパソコンなら絶対にゲームにならない速度ですね…。
そもそもMSXには三角関数を求める命令がないから、sin・cos・tanをどう求めるか?
他の人のプログラムを見たことはないけど、多分、私同様計算結果をデータベースとして用意してるんじゃないかなと思います。
それでも単純に三角関数の回答だけデータベース化しても、その値から長さとか求めるためにかけ算・割り算の計算しまくりで、一層遅くなりますね…。
じゃぁ、どうするか?
それらを追加でLaboratoryのテーマに挙げますね。
2023年07月18日
制作が簡単なゲームジャンル(私見)
因みに昨日の続きで、「逆に簡単なのは何か?」と聞かれれば、私は「パズルゲーム」と答えます。
あくまで私見です。
あと、一部のアクションゲーム。
まぁ、アクションゲームは守備範囲が広すぎる気がしますね…、広義ではレースゲームやスポーツゲームもアクションゲームに入ります。
その広い中でも、面クリアタイプのもの。
理由は簡単。
パズルゲームは仕組みさえ作れば、あとは面を考えるだけだから。
まぁ、それが難しいのですが、私は意地悪な面を考えるのが好きなので…。
面クリアタイプのアクションゲームも、動作さえ作ってしまえば同じ。
要するに、プログラムは少なく、コンストラクション要素が強いものが簡単(好き)です。
ただ、ボス出現タイプは、これに非ず。
パズルゲームの代表的なものは、昔ハマったロードランナーや倉庫番など。
画像出典: 『GameFAQS』
https://gamefaqs.gamespot.com/msx/951433-lode-runner-ii/media
画像出典: 『GameFAQS』 倉庫番 MSX版
https://gamefaqs.gamespot.com/fm7/363898-soukoban/media
アクションゲームでは、パックマンや、マッピーなど。
画像出典: 『GameFAQS』 パックマン MSX版
https://gamefaqs.gamespot.com/arcade/589548-pac-man/media
画像出典: 『GameFAQS』 マッピー MSX版
https://gamefaqs.gamespot.com/arcade/583829-mappy/media
動作ロジックは共通で、面を変えるだけ。
再度書きますが、あくまで私見です。
でも実は、私は過去にこの手のパズルゲームほとんど作っていないのです!
なんでだろう?
あくまで私見です。
あと、一部のアクションゲーム。
まぁ、アクションゲームは守備範囲が広すぎる気がしますね…、広義ではレースゲームやスポーツゲームもアクションゲームに入ります。
その広い中でも、面クリアタイプのもの。
理由は簡単。
パズルゲームは仕組みさえ作れば、あとは面を考えるだけだから。
まぁ、それが難しいのですが、私は意地悪な面を考えるのが好きなので…。
面クリアタイプのアクションゲームも、動作さえ作ってしまえば同じ。
要するに、プログラムは少なく、コンストラクション要素が強いものが簡単(好き)です。
ただ、ボス出現タイプは、これに非ず。
パズルゲームの代表的なものは、昔ハマったロードランナーや倉庫番など。
画像出典: 『GameFAQS』
https://gamefaqs.gamespot.com/msx/951433-lode-runner-ii/media
画像出典: 『GameFAQS』 倉庫番 MSX版
https://gamefaqs.gamespot.com/fm7/363898-soukoban/media
アクションゲームでは、パックマンや、マッピーなど。
画像出典: 『GameFAQS』 パックマン MSX版
https://gamefaqs.gamespot.com/arcade/589548-pac-man/media
画像出典: 『GameFAQS』 マッピー MSX版
https://gamefaqs.gamespot.com/arcade/583829-mappy/media
動作ロジックは共通で、面を変えるだけ。
再度書きますが、あくまで私見です。
でも実は、私は過去にこの手のパズルゲームほとんど作っていないのです!
なんでだろう?
2023年07月17日
制作が難しいゲームジャンル(私見)
「昔のゲームジャンルで自主制作が一番大変だったのは何か?」と聞かれたら、私は迷わず「アドベンチャーゲーム」といいます。
あくまで私見です。
なぜかと言うと、絵を描くのが非常に大変だったから!
昔は今のようにグラフィックを描く環境が整っておらず、デジカメはない時代。
スキャナは取り込み画像小さいくせに、とんでもなく高額。
ペンタブレットは、その当時にあったのかなかったのかさえ不明…。
当然、液タブもしかり…。
絵を描く環境がグラフィックソフトとマウスしかなかったのです。
まぁ、まだマウスがあったのが、せめてもの救いでしたが…。
ケベロンシリーズ第一作目 「ケベロンの冒険〜勇者誕生〜」
以前にも書きましたが、私が絵を描く時は、紙に絵をかいて、それをサランラップに書き写しモニタに貼って、グラフィックソフト上でマウスでなぞる様に書いていました…。 (2023年6月6日記事参照「 他のツール集 」)
死ぬほど時間と根気、集中力が必要な作業です。
しかも、目と指が死ぬ…。
一部のプロの人は直接マウスでグラフィックツールにゴリゴリ描いていたと聞きますが、素人の自分にそんなことできるわけない!
うーん、絵を描くこと自体は好きだったので、昔液タブがあれば制作ジャンルが全然違っていたと思います。
あくまで私見です。
なぜかと言うと、絵を描くのが非常に大変だったから!
昔は今のようにグラフィックを描く環境が整っておらず、デジカメはない時代。
スキャナは取り込み画像小さいくせに、とんでもなく高額。
ペンタブレットは、その当時にあったのかなかったのかさえ不明…。
当然、液タブもしかり…。
絵を描く環境がグラフィックソフトとマウスしかなかったのです。
まぁ、まだマウスがあったのが、せめてもの救いでしたが…。
ケベロンシリーズ第一作目 「ケベロンの冒険〜勇者誕生〜」
以前にも書きましたが、私が絵を描く時は、紙に絵をかいて、それをサランラップに書き写しモニタに貼って、グラフィックソフト上でマウスでなぞる様に書いていました…。 (2023年6月6日記事参照「 他のツール集 」)
死ぬほど時間と根気、集中力が必要な作業です。
しかも、目と指が死ぬ…。
一部のプロの人は直接マウスでグラフィックツールにゴリゴリ描いていたと聞きますが、素人の自分にそんなことできるわけない!
うーん、絵を描くこと自体は好きだったので、昔液タブがあれば制作ジャンルが全然違っていたと思います。
2023年07月07日
BlueMSXでマウス動かず(再チャレンジ!)
あれから何度もチャレンジしていますが、やっぱり「FONT EDITOR」でマウス動かない…。
おかげで全然3DダンジョンRPGのFONT製作進まない…。
FONT制作進まないと、やる気起きません…。
(私は先にキャラクタを制作して、それを見て気分を盛り上げながら、プログラミングに入るタイプです。)
ジョイスティックは問題なく動くのに…。
やっぱり自分のパソコンがペンタブ(液タブも使う)接続環境だからダメなのかな?
よし!
一度、マウスだけの環境のノートパソコンで試してみよう。
「ツール」の「コントローラー/キーボード構成編集」を開き、「Joystick1」を「マウス」に設定。
BlueMSX再起動。
…動かん!
ノートパソコンも再起動。
…動かん!!
なんでだろう?
ノートパソコンだから、タッチパッドがいけないのか?
念のためWebMSXでも試しに。
…動かん!!!
あぁ、ストレスです…。
うーん…、あと何が考えられますか?
誰かご教授くださいー!
2023年06月15日
MSXでプログラミング
最近、MSXでプログラミングをしていますが気になることが一つ。
プログラミングするエディタ画面(?)が使いづらい!
Windowsの開発環境に慣れてしまうと、「なんでこんなので開発できていたんだ!?」って叫びたくなるレベルの使いづらさです。
プログラミングが捗らない捗らない…。
本当によくこの環境で開発してたな…。
昔はWindowsの開発環境がなく、これが当たり前だったからできたんでしょうね…。
まず、「コピー」、「貼り付け」がない。
これが一番致命的です。
何と言っても、他のプログラムから「この部分だけコピー」が出来ません。
いろんなプログラムで使う事が前提の共通サブルーチン(乱数発生等)を、毎回プログラムごとに入力しなければならず、面倒くさいことこの上ない…。
今、まさしくサンプルプログラムを作る事が多いので切実です。(FONTデータをVRAMに転送するサブルーチン等、ほぼ全てのサンプルに必要。)
現状、全部のサブルーチン詰め込んだ基ファイルを作り、それをコピーし、コピーしたファイルを必要なサブルーチン以外全削除した状態からサンプルを作り始める事で対応してます…。
あと、「検索」「置き換え」がない。
これも致命的です。
変数名など書き換えたら、いちいち全ロジック見て探さないといけない…。
絶対チェック漏れあるよね…。
誰かテキストエディタで入力したプログラムをそのままBlueMSXで起動できるようなツール作ってくれないかな…。(他力本願。)
既にあるのならご教授ください。
最低、この4つが出来れば私的には満足です。
希望を言うなら、プログラム全表示し上下スクロールできる環境が欲しい。
デバッグ時、LIST命令で間違いを探して、ストップさせ1画面分のプログラム修正、LIST…、効率悪いです。
んー、使ったことないからわかりませんが、MSX-Cとかの開発環境はどんなんだったんでしょうね?