MSXBASICができればBASICに似たような言語を使うことができます。
例えばHSPとかありますが、「これはダメだろう」という命令が見つかりました。
chgdisp命令です。この命令はWindows7で正しく使うと
システムが書き換えられて低解像度状態に陥り、
多くのウインドウがスクリーンアウトしてしまい、
さらにボタンが見えなくなります。ネットには多くの書き込みがありますが、
むやみにコピー&ペーストをしないようにしてください。
この命令はWindows95初代ごろの解像度に変更されるのですが、
サポート外の解像度になってしまいます。
もし、実行してしまった場合はドライバーの削除を選択して
ドライバーを空の状態からシステムの修復を選択して復元の措置になります。
そこで「正しい設定はこうだ!」と、書いてみました。(お!)
ということで、さっそく組んでみました。
*top
screen 0,400,400
pos 0,0
mes"設定する解像度を選択してください。"
pos 0,20
mes"XGA [4:3]"
button"1024x768",*reso768
mes"Quad-VGA [4:3]"
button"1280x960",*reso960
mes"UXGA [4:3]"
button"1600x1200",*reso1200
pos 0,150
mes"XGA [5:4]"
button"1280x1024",*reso1024
pos 0,230
mes"HD [16:9]
button"1366x768",*reso768_2
mes"HD+ [16:9]
button"1600x900",*reso900
mes"FullHD [16:9]"
button"1920x1080",*reso1080
pos 0,380
button"キャンセル",*top
stop
*reso768
chgdisp 1,1024,768
goto *reso
*reso768_2
chgdisp 1,1366,768
goto *reso
*reso960
chgdisp 1,1280,960
goto *reso
*reso1024
chgdisp 1,1280,1024
goto *reso
*reso900
chgdisp 1,1600,900
goto *reso
*reso1080
chgdisp 1,1920,1080
goto *reso
*reso1200
chgdisp 1,1600,1200
*reso
pos 0,0
dialog"元の画面に戻しますか?",2
if stat=7 :goto *top
chgdisp 0
stop
動作環境
Windows7
HDディスプレイ(22.5インチ)
入力中は「dispがどうしてもdisk」と、入力してしまうこともありました。
まぁ、MSXユーザーですから馴染まないのは仕方ないです。
そう言っているウチも動くかどうか不安ですが、動作しました。
この命令はHSPを実行中は指定した解像度になっているので、
元の解像度にまた戻るようですね。
ただ勉強になりました。
ウインドウの操作ボタンは左上に配置すれば、
もし低解像度になった場合でも操作できることです。
基本的なことですが、やはり忘れますね。
HSPの性能をチェックしてみましたが、
一時期はHSPはあまり好みではありませんでしたが、
MSXエミュレータの高速モードよりも食いつきがよく、
おいしい言語のような気がします。
MSXの対応のエディタはVBA版はできていますが、
HSP版は開発すればラクなのにできていないのが現状です。
SDカードでHSPとMSXの互換データを作りたい望みもありますが、
いつになるやら、コトシアタリヤロウカナ…
さて、MSXですがマシン語の続きをはじめていきます。
マルチカラーモードのVRAMは上から下に7ドット描いて2ドット進んで
繰り返しとかなりテクニカルな表示です。
これは、携帯ゲーム機(ゲーム&ウォッチ)に似た画面を作るためのモード
なんでしょうか?
かなり死語的なところですが、当時のキャラクタはリセットボタンを押すと
見えないキャラクタも全て表示していました。
「8×8で描いて、つなげる手法で描いていましたからね」
ただ、そういうゲームはMSXで見たことがありません。
BlueMSXでやってみました。
やっぱり、ゆるキャラを描くだけの画面です。
これではあまり描くことができません。仮に動かすと
アドレスを32ステップで8ドット移動のかなり大きな動きになります。
キャラの動きには適さない画面でのようです。
背景などを描く画面とすればキャラはスプライトでしょうか、
スプライトは2倍に大きくする設定がたしかありますね。
こんなことも★
アセンブルツールの山場だったJR命令の処理がとりあえずできました!
これで、絶対指定と相対指定がBASICで作ることができます。
次回、解説します。
さて、モンハンをやっています。ただ攻撃するだけでは勝てないことがわかりました。
間合いを考えて戦わないといけないという剣術的なところがあります。
村クエスト3程度に進めていますが、んー奥が深いゲームですね。
クエスト中は体力回復、かなり減少していれば休憩してエリア外で復帰して
数回挑めば勝ちます。エリア外ではモンスターが全回復にはなっていないようです。
※コメント投稿者のブログIDはブログ作成者のみに通知されます