2023年06月26日
開発案件広げすぎ…
最近、本業が忙しい…。
これからMSXでプログラミングを始める方(いるのか?)用に始めた「Laboratory」ですが、サンプルプログラム作りがなかなか厳しいです。
サンプルなので、適当に簡単なものを用意すればいいところを、なんか変なところに拘って制作に時間かかってしまう…。
ただでさえ会社からの帰宅時間が遅いのに、そこから更に遅くなって深夜まで制作していることも多くなってきました…。
しかも同時進行で3DダンジョンRPG制作もやっているので、一層遅れてしまう…。
うーん、一気にコンテンツ広げすぎました…。
ちょっと整理しますね。
Laboratoryはここで止めるのは切りが悪いので、テーマ6までは進めます。
(サンプルプログラムがほぼ完成間近なので…。)
テーマ6公開後、そこで一旦止めてゲーム制作に集中します。
(まぁ、MSXプログラミングの勘を戻すための習作として始めた3DダンジョンRPGですが、実のところLaboratoryのサンプルプログラム製作でほぼ勘は戻ってますが…。)
そしてゲーム完成後に、テーマ7以降を再開することとしますね。
2023年06月25日
作品H「平安京エイリアン」
次はこれ。
「平安京エイリアン」を作ってみました。
前作で、やっとSPRITEを使ったのに、今作でまた使わないという…。
友人の依頼で懐かしいゲームを真似て作りました。
個人レベルの模写で、利益も得ていないけど著作権てどうなるのかな?
「平安京エイリアン」を作ってみました。
■主な新テクニック
・復活時無敵モード実装
・移動方向を向く自機キャラクタを実装
・復活時無敵モード実装
・移動方向を向く自機キャラクタを実装
前作で、やっとSPRITEを使ったのに、今作でまた使わないという…。
友人の依頼で懐かしいゲームを真似て作りました。
個人レベルの模写で、利益も得ていないけど著作権てどうなるのかな?
タイトル | 『 エイリアン 』 | 作品 | 9 | |
内容 | 街に現れたエイリアンを、自機を操作し穴を掘り、エイリアンが落ちたところを素早く埋めて退治して下さい。 | |||
操作方法 | 起動し、しばらくしてタイトルが表示されたら、十字キーでプレイヤー数を選択し、Aボタンで決定 2プレイヤーを選択すると、コントローラーの選択となりますので、それぞれのプレイヤーが使用するコントローラーのAボタンを押し、ゲーム開始 十字キーで、自機移動 Aボタンで、穴掘り Bボタンで、穴埋め | |||
対応機種 | MSX1、MSX2、MSX2+ | 製作年 | 1988年 | |
ダウンロード | リンク先へ | ジャンル | アクション | |
ライセンス | 平安京エイリアンは株式会社ハイパーウェアの登録商標です。 |
※ゲーム内のキャラクタ、音楽は制作当時の物です。 公開前提に製作していないため、雑誌等から流用している物もあるかも知れませんので、著作権侵害の恐れのあるものは、ご連絡をお願いします。 |
2023年06月24日
2023年06月23日
Laboratoryテーマ4「マシン語の平方根の求め方」
さて、今回はLaboratoryテーマ4「マシン語の平方根の求め方」です。
マシン語での平方根の求め方の考え方とロジックは、HRAさんのホームページで詳しく解説されているのでご覧ください。
トップページから「MSX関連」―「Z80 Coding Tips」―「[2020年8月16日] Z80で平方根を求めるには?」にあります。
平方根の求め方のサンプルプログラムです。
「HEISMPL.BAS」【ダウンロード】
マシン語での計算結果と、検算用にBASICで単純計算した結果を列記します。
マシン語のサンプルです。
起動すると、HEIHOU.BINを作成します。
1個8ビット変数を利用しているので、サブルーチンとしてアドレス変更する際は、そこの変更を忘れないように気を付けてください。(&HBF87:3ヵ所)
IN | OUT | ||
BC | 平方根を求める値 | A | 平方根 |
「HEIHOU.BAS」【ダウンロード】
マシン語のサブルーチンとして必要なのは&HBF30~&HBF67までです。
&HBF68~&HBF77は計算元値を代入してサブルーチンコールします。
では、次回はLaboratoryテーマ5「16ビットアドレス値の10進数表示」です。
2023年06月22日
Laboratoryテーマ3「マシン語の割り算」
さて、今回はLaboratoryテーマ3「マシン語の割り算」です。
マシン語での割り算の考え方とロジックは、HRAさんのホームページで詳しく解説されているのでご覧ください。
トップページから「MSX関連」―「Z80 Coding Tips」―「[2020年8月15日] Z80で除算するには?」にあります。
割り算のサンプルプログラムです。
「WARISMPL.BAS」【ダウンロード】
マシン語での計算結果と、検算用にBASICで単純計算した結果を列記します。
マシン語のサンプルです。
起動すると、WARIZAN.BINを作成します。
IN | OUT | |||
A | 割られる数 | D | 商 | |
B | 割る数 | E | 余り |
「WARIZAN.BAS」【ダウンロード】
マシン語のサブルーチンとして必要なのは&HBF00~&HBF17までです。
&HBF18~&HBF27は計算元値を代入してサブルーチンコールします。
では、次回はLaboratoryテーマ4「マシン語の平方根の求め方」です。
2023年06月21日
Laboratoryテーマ2「マシン語の掛け算」
さて、今回はLaboratoryテーマ2「マシン語の掛け算」です。
マシン語での掛け算の考え方とロジックは、HRAさんのホームページで詳しく解説されているのでご覧ください。
トップページから「MSX関連」―「Z80 Coding Tips」―「[2020年8月15日] Z80で乗算するには?」にあります。
掛け算のサンプルプログラムです。
「KAKESMPL.BAS」【ダウンロード】
マシン語での計算結果と、検算用にBASICで単純計算した結果を列記します。
マシン語のサンプルです。
起動すると、KAKEZAN.BINを作成します。
IN | OUT | |||
A | 掛けられる数 | HL | 積 | |
B | 掛ける数 |
「KAKEZAN.BAS」【ダウンロード】
マシン語のサブルーチンとして必要なのは&HBF18~&HBF2Fまでです。
&HBF30~&HBF3Fは計算元値を代入してサブルーチンコールします。
では、次回はLaboratoryテーマ3「マシン語の割り算」です。
2023年06月20日
作品G本格対戦!
次はこれ。
やっとSPRITEを使いました。
ほぼ、上限の32枚使い切っています。
画面を大きく使いたかったので8×8のキャラクタにした為、当たり判定がシビアになってしまい、なかなか勝負が付きません…。
■主な新テクニック
・SPRITE実装
・リアルタイムタイマー実装
・SPRITE実装
・リアルタイムタイマー実装
やっとSPRITEを使いました。
ほぼ、上限の32枚使い切っています。
画面を大きく使いたかったので8×8のキャラクタにした為、当たり判定がシビアになってしまい、なかなか勝負が付きません…。
タイトル | 『 BATTLE FIELD 』 | 作品 | 8 | |
内容 | 自機(プレイヤー1は下、プレイヤー2若しくはCPUは上)を操作し弾を撃ち、相手を倒して下さい。 | |||
操作方法 | 起動し、しばらくしてタイトルが表示されたら、「↑」「↓」カーソル若しくは十字キーでプレイヤー数を選択し、「スペース」バー若しくはAボタンで決定 2プレイヤーを選択すると、コントローラーの選択となりますので、それぞれのプレイヤーが使用するコントローラーの「スペース」バー若しくはAボタンを押し、ゲーム開始 「←」「→」カーソル若しくは十字キーで、自機移動 「スペース」バー若しくはAボタンで弾発射 エネルギーメーター残量分の距離しか弾は飛びません | |||
対応機種 | MSX1、MSX2、MSX2+ | 製作年 | 1988年 | |
ダウンロード | リンク先へ | ジャンル | シューティング |
※ゲーム内のキャラクタ、音楽は制作当時の物です。 公開前提に製作していないため、雑誌等から流用している物もあるかも知れませんので、著作権侵害の恐れのあるものは、ご連絡をお願いします。 |
2023年06月19日
Laboratoryテーマ1「マシン語で乱数発生」
さて、今回はLaboratoryテーマ1「マシン語で乱数発生」です。
乱数はアクションゲームや、シューティングゲームにはなくてはならないものです。
BASICなら、A=RND(1)*100の1文で済みますが、マシン語にはそんな命令はありません。
ただ、マシン語で乱数を発生させる方法はいくつかあります。
中でも、R(リフレッシュ)レジスタを使えば、比較的簡単に乱数の代わりとすることは出来ます。
私はゲーム制作初期の頃に、必要に駆られて乱数サブルーチンを作り、特に困ることもなかったので、ずっとそれを使い続けています。
Rレジスタの方法の他、いくつかの方法を掛け合わせて乱数を発生させています。
乱数のサンプルプログラムです。
「RNDSMPL.BAS」【ダウンロード】
実行するとひたすら乱数を発生させ続けます。
大体どの値がどの位出たのかの目安もカウントします。
マシン語のサンプルです。
起動すると、RANDOM.BINを作成します。
1個16ビット変数を利用しているので、サブルーチンとしてアドレス変更する際は、そこの変更を忘れないように気を付けてください。(&HE136、&HE137:3ヵ所)
「RANDOM.BAS」【ダウンロード】
マシン語のサブルーチンとして必要なのは&HBF00~&HBF17までです。
大きくもないプログラムですので、詳しい解説はしませんが、興味があれば解析してみて下さい。
ミソは150行の真ん中にある、ED,5F(LD A,R)です。
では、次回はLaboratoryテーマ2「マシン語の掛け算」です。
2023年06月18日
Laboratoryテーマ2〜4について
久しぶりにツイッターでMSX関連の記事閲覧してたら、ツイート主のホームページURLが記載されているのを発見。(自分ツイッターやっていないのでそんなことも知りませんでした…。)
幾人かの方のページを見て回りました。
その際、とある方のホームページでZ80での「掛け算」「割り算」「平方根」算出の考え方とロジックが公開されているのを発見!
とても詳しく解説されているので、凄く解り易いと思います。
私の使っているロジックと考え方は同じで、改めて私が解説するよりも解り易いと思いますのでLaboratoryテーマ、
2「マシン語の掛け算」
3「マシン語の割り算」
4「マシン語の平方根の求め方」
については、考え方とロジック解説はそちらの方のホームページを紹介させてもらいます。
うーん、私が使っているロジックとほぼ変わらない処理速度とプログラムの長さです。
というか、「掛け算」「割り算」は使用レジスタが異なるだけ(ある程度のレベルの人なら誰が組んでも効率よく、短くロジック組むとほぼ同じになる)、「平方根」はその方の方が少し効率が良さそうです。
ならば、ここから先のLaboratoryで使う「掛け算」「割り算」「平方根」算出ルーチンは、その方のロジックに書き換えて進めた方が解り易いですね。
既に2〜4のサンプルプログラム用意してあるので、マシン語部書き換えますね。
HRAさんのホームページです。
トップページから「MSX関連」―「Z80 Coding Tips」にあります。
「16進数の10進数表示」もありましたが、こちらはロジックが異なるので私の方で行います。
しかし、TIPSがここまでダブるとは面白いですね。
まぁ、マシン語で初心者が悩むところは同じなんだなと思ってしまいますね。
他にも技術的なことが満載ですので、とてもためになります。
因みに以前、ツイッターでお気に入りのプログラマーさんがいると書きましたが、その人です。(2023年5月21日記事参照「ツイッター」)
リンクに勝手に載せようかと思いましたが、ページの最終更新日が古いので止めときます。
ありゃ、テーマ6「自機に向かって飛んでくる敵弾」の続きは後日と言っていたのに、すぐに出来そうです。
まだ先だと思ってたのでサンプルプログラムが出来ていないので、少しお待ちください。
2023年06月17日
パソコン同好会活動方針
今も昔もそう大きく変わっていないと思いますが、大学受験に向け、体育会系の部は3年生は夏過ぎには部活動を引退します。
文化系の部は文化祭を最後に引退するので10月過ぎになります。
かくいう私率いるパソコン同好会も、文化祭に向け精力的に活動しておりました。
この年は、「文化祭前に電波新聞社が刊行している「マイコンBASICマガジン」に投稿する」という例年になく前向きな活動方針の下、オリジナルゲームを制作し「マイコンBASICマガジン投稿作!」という事を触れ込みに、文化祭で発表すると言った目標を掲げ活動していました。(2023年3月28日記事参照「いざ、プログラミング!」)
この時作っていたのが水中ダイバーを自機にし、銛でタコやイカ、クラゲ、数種類の魚と言った海の生物を狩るシューティングゲームでした。
色々な敵を皆で考え、ボスに鯨やマンボウ、大王イカなど、企画は盛り上がっていました!
因みに、部活動中にキャラや音楽、画面構成や敵パターンなどを考え、私が家でプログラミングするという、私だけサービス残業尽くしの制作スケジュールでしたが…。
まぁ、私の制作活動の中で、初めて皆で1つのゲームを作るという経験が、とても印象的で楽しかったです。
目標は「投稿する」だったのですが、もし掲載されたら掲載料が貰えるので、それで皆で何か食べに行こう!と言い合ってました。
今思うと「マイコンBASICマガジン」は、あまり大きなプログラムは掲載しないので、投稿してても無理だったんじゃないかなと思います。
全3面の縦スクロールシューティング(さすがに背景はループ)で、敵は10種類以上いたと思う。
なるべく短く組んだつもりですが、他のプログラムと比べるとやはり大きかった気がします。
因みに私のゲーム開発歴はポケットコンピューターから始まったので、書籍購入は「マイコンBASICマガジン」や工学社刊行の「PIO」と言った雑誌だったため、「MSXマガジン」、「MSX・FAN」の存在をこの当時は知りませんでした。(2023年3月26日記事参照「私とMSX」)
画像出典: 『レトロPC・ゲーム専門店BEEP』 PIO誌
https://www.beep-shop.com/blog/2468/
文化系の部は文化祭を最後に引退するので10月過ぎになります。
かくいう私率いるパソコン同好会も、文化祭に向け精力的に活動しておりました。
この年は、「文化祭前に電波新聞社が刊行している「マイコンBASICマガジン」に投稿する」という例年になく前向きな活動方針の下、オリジナルゲームを制作し「マイコンBASICマガジン投稿作!」という事を触れ込みに、文化祭で発表すると言った目標を掲げ活動していました。(2023年3月28日記事参照「いざ、プログラミング!」)
この時作っていたのが水中ダイバーを自機にし、銛でタコやイカ、クラゲ、数種類の魚と言った海の生物を狩るシューティングゲームでした。
色々な敵を皆で考え、ボスに鯨やマンボウ、大王イカなど、企画は盛り上がっていました!
因みに、部活動中にキャラや音楽、画面構成や敵パターンなどを考え、私が家でプログラミングするという、私だけサービス残業尽くしの制作スケジュールでしたが…。
まぁ、私の制作活動の中で、初めて皆で1つのゲームを作るという経験が、とても印象的で楽しかったです。
目標は「投稿する」だったのですが、もし掲載されたら掲載料が貰えるので、それで皆で何か食べに行こう!と言い合ってました。
今思うと「マイコンBASICマガジン」は、あまり大きなプログラムは掲載しないので、投稿してても無理だったんじゃないかなと思います。
全3面の縦スクロールシューティング(さすがに背景はループ)で、敵は10種類以上いたと思う。
なるべく短く組んだつもりですが、他のプログラムと比べるとやはり大きかった気がします。
因みに私のゲーム開発歴はポケットコンピューターから始まったので、書籍購入は「マイコンBASICマガジン」や工学社刊行の「PIO」と言った雑誌だったため、「MSXマガジン」、「MSX・FAN」の存在をこの当時は知りませんでした。(2023年3月26日記事参照「私とMSX」)
画像出典: 『レトロPC・ゲーム専門店BEEP』 PIO誌
https://www.beep-shop.com/blog/2468/