ニャオニャオ21世紀

レトロゲーム(MSX、PCエンジン、セガサターン)と、MSXぽいアプリ開発と、最新ゲーム(PS4、SWITCH)、身体(身体意識など)、ライフハックほか雑記を綴っています

WebMSXでMSX BASICの自作ゲーム作成!第17弾。 マシン語部分を解説。その1

今回は一部に使用したマシン語部分の解説をします。

 

別のコーナーで、マシン語勉強レポートをやってきたのですが、

それがこのプログラムで使用しているマシンコードのところまで

やれたので、やっと説明ができます。

 

こんなゲームを作ってきました。

www.nyaonyao21.com

 

 

MSXのBASICプログラム だけでは  スピード的に無理なところが

ありまして、仕方がなくマシン語を使うところがでてきます。

BASICの自作ゲーム作成と銘打っていて、マシン語を使うのは

心苦しいところではありますが、

ご了承くださいm(_ _)m

(なお、このページだけでは理解できないと思います。今までの

MSX BASIC自作ゲーム作成、第1弾から読んでいただくのと、

MSXマシン語勉強レポートを最初から読んでくださいm(_ _)m。

大変ですが...)

 

 

マシン語を使って、なにをやっているか?なのですが、

・キャラクター(文字)のグラフィックの書き換え

・画面に表示

 

簡単にいいますとこんな感じです。

どちらもVRAMに関わってくるのですが、BASICでやると

かなりスピードが遅いのです。

 

最初に待たされる時間が長いとか、

画面切り替えで、画面を表示するのに遅いとか。

 

 

このコーナーのプログラムで使っているマシン語はこちらです。

960 DATA 2AF8F711080201A000CD5C0
0C9

 

970 DATA 2AF8F711082201A000CD5C0
0C9

 

980 DATA 21080211080A01A000CD4A0
0EBCD4D00EB23130B78B120F12108021
1081201A000CD4A00EBCD4D00EB23130
B78B120F1

 

985 DATA 21082211082A01A000CD4A0
0EBCD4D00EB23130B78B120F12108221
1083201A000CD4A00EBCD4D00EB23130
B78B120F1C9

 

990 DATA 2AF8F7110018010003CD5C0
0C9

 

960行~990行に書かれています。

DATA文で読み込んでいます。

 

4つのサブルーチンとなっています。(980行と985行は一つです。)

それぞれBASICから呼び出す形をとっています。

 

それでは1つづつ。

 

その1

960 DATA 2AF8F711080201A000CD5C00C9

これはなにをやっているのかといいますと、

メモリからVRAMへデータを転送しています。

なんのデータかというと、ブロックなどのキャラクターデータですね。

この”BASICの自作ゲーム作成!”では、

キャラクターデータをBLOADでメモリに読み込んでいます。

そのメモリに読み込んだデータを、VRAMに書き込みます。

 

実は、このプログラムは、マシン語の勉強レポートで

取り上げたのをそのまま使っています。

 

www.nyaonyao21.com

 

アセンブラで書くとこうなります。

 

LD  HL,  (F7F8H) 

LD  DE,  0208H

LD  BC, 00A0H

CALL  LDIRVM

RET 

 

これは先のマシン語の解説ページとほぼ同じです。

0208Hと00A0Hが違うだけです。

0208Hは書き込むVRAMのアドレス。

00A0Hは、書き込むバイト数。

 

0208は、10進数でいうと、520。キャラクターコード 65(a) の

アドレスです。

00A0は、10進数でいうと、160バイト。(20文字分)

 

アセンブラの説明は、先のページに詳しく書いてあります。

ご覧ください。

 

 

その2

970 DATA 2AF8F711082201A000CD5C00C9

じつは、こちらは、その1のマシン語とほとんど変わりません。

書き込むアドレスが違うだけです。

こちらはVRAMの色を扱っているアドレスに、メモリから

読み込んだデータを書き込んでいます。

 

 

VRAMでは、形と色を別のアドレスに保存しています。

 

ソースコードです。

LD  HL,  (F7F8H)

LD  DE,  2208H

LD  BC, 00A0H

CALL  LDIRVM

RET 

 

2208H〜は、文字a以降の、色データが入っています。

以前書いたSCREEN2のVRAM構造を書いておきます。

 

文字の形の入っているパターンジェネレータテーブルは、

&H0000-------------------------------------

↓   画面上段の文字        

&H0800-------------------------------------

↓   画面中段の文字  

&H1000-------------------------------------

↓   画面下段の文字

&H1800-------------------------------------

↓ パターンネーム

↓ (画面表示)

↓ 左上から右下まで。横32x縦24=768バイト

↓ 1バイトに1文字のアスキーコードを入れます。

&H1B00------------------------------------

↓ スプライトアトリビュート

 

文字の色の入っているカラーテーブルは、

&H2000-------------------------------------

↓   画面上段の文字の色         

&H2800-------------------------------------

↓   画面中段の文字の色  

&H3000-------------------------------------

↓   画面下の文字の色 

&H3800-------------------------------------

 

↓ スプライトジェネレータ

----------------------------------------------

 

それから、MSXのキャラクターコード表は、こちらを

ご覧ください。

Appendix A.9 キャラクタコード表 - テクハンwiki

 

 

 

マシン語はあと2つありますが、

少し長くなったので、続きは次回にします。

 

それでは〜^^

好きなことをやって稼げというけれど.....。市場が小さいんだよなぁ。

最近、好きなことをやることで稼ぐことができるという

本をよく目にします。

確かに、イヤイヤやっている人と、楽しんでやっている人とでは

勝負にならないのはわかります。

しかし、お金にするというところが難しいのではないのかな〜。

 

私の場合はMSXが好きですが、それをお金にするというのが

難しいと思うのです。

確かにMSXのことをやっていると楽しいんですが、

仕事になるかというと....

 

どうやってマネタイズしたらいいのでしょうかね。

MSXのゲームを作っても売るのは難しいでしょうし。

 

まあ、ゲームという括りでいけば、STEAMやアプリなどでお金にできるのですが

MSXでは無理かなぁ〜。

普通に作って公開、ではダメなのでしょう。

 

MSXに限らず、

すごく面白いゲームを作ることができればいいのですが。

 

あれこれマネタイズを考えるくらいなら、面白いゲームを作ることに

労力を費やした方がいいのかなぁw

 

面白いものを作るスキルさえあれば、

LA-MURANA、フェアルーンみたいな展開もできるのかもしれないし。

 

どうもそのあたりで迷走しています。

どんどんゲームをつくればいいだけなのに。

 

ゲームブログで収入を得つつ、ゲームも作っていけたらなぁと考えたことも

ありましたが、

ゲームブログはゲームブログで、ゲームの攻略などで時間がかかります。

片手間にできるようなものではないようです。

 

ゲーム以外で、あれができないか、これができないかと

あれこれ考えるのではなく、

色々な可能性を捨てないといけないのかもしれません。

 

ホリエモンのいうように、ひとつの分野で80%くらいまで

極めるのが大切なのかもしれません。

そこまでいって初めて他のことにも手を出せるのかなぁ。

 

ホリエモンの言っていたのは、

100%まで極めるのは難しいので、80%ぐらい極めたものを

3つくらいもつといいということでした。

 

なんか気持ちがまとまってきました!!

まずは、ゲームで80%くらいまで極める!

 

他のことはそのあとでということで!

おお!モチベーションが湧いてきました!

 

ガシガシ、ゲームを作っていきたいので、

生暖かい目で見ていただけると嬉しいです^^

 

 

 

 

 

 

 

 

 

 

GOROman著 "ミライの作り方"でVRへのモチベーションが上がりました^^

ミライの作り方という本を読みました。

(ミライのつくり方2020―2045 僕がVRに賭けるわけ (星海社新書))

 

twitterではGOROmanという方をフォローしていたのですが、

あまりよく知りませんでした。

彼の生い立ちなどが書かれていて、なるほど、面白いなぁと

思いました。

愛知県の豊橋出身で、私と同世代の人(40代)みたいですね。

お隣の県ということもあり親近感が湧きましたw

 

この世代は、マイコン世代なのです。

PC6001mk2とか、MSXとか。

GOROmanさんはPC6001mk2を持っておられたようで。

 

私と違うのは、プログラムをがっつりやっておられるところですね。

ゲームを作ったり。

そしてパソコン通信にはまっていたそうです。

 

パソコン通信かぁ。電話代が高そうでやれなかったなぁ〜。

 

そして、ゲーム会社に入り、Oculusにハマり、Oculus日本法人を

作られたんだったかな。

 

行動力がすごいですね。

 

前半はGORO-manさんの生い立ちで、後半はVRについてです。

VRのミライのところが特に惹かれました。

 

VRで作業するときに、ディスプレイの四角い制約がなくなり、

空間を広く使い、そこら中にバッーと資料などを広げて作業できる

というあたりなど、VRに可能性を感じます。

 

VRで国家の概念が変わるというのも面白い。

 

 

VRを一般化するためにはキモズムを超えなければいけないというのは、

確かに!と思わされました。

キモズムとは、出始めたガジェットなどをキモいと感じる人が

たくさんいる状態のこと。

 

私も大学のとき、 PCのプログラムの授業があったのですが、

そこで簡単なBASICがわかるというだけで、

女子にキモいといわれましたからねw

理工学部だったにも関わらずですよ!

特に仲がいい人でもなかったんですけど、なんかショックでしたw

 

それが今では出来ない人がいないくらいになりました。

 

そのキモズムですが、イノベーターというのは人口の2.5%くらいいるらしく、

その数はずっと変わらない。

それを遺伝子で説明しています。

 例えばフグを初めて食べるような人たちがイノベーターだと。

すべての人がすぐに飛びついたら、人類が滅んでしまうリスクがあるので、

一部の人だけが新しいものに反応するのではないかと

書かれていました。

 

なるほど〜という感じです。

 

 

 

"女子高生が使い始めると、やっと一般化の兆しがみえる。"

確かにそうだと思います。

その点VRはまだまだですね。

 

女子高生からしたらVRをやっている人ってキモいのかもしれませんw

 

ただGOROman氏が言うように、VRはパソコン、スマホなどと同じ経路を

辿っているように見えます。

なので、いずれ一般化するでしょう。

 

そのためには使い勝手と、デザインが大切ですね。

普通のメガネと同じほどの大きさになったら一気に普及すると思います。

それまでは8ビットパソコンと同じ道を通るのかなw

 

とりあえず、Oculus GOが欲しくなりました^^

PSVRは持っていますが開発ができないので、ね。

 

この本はVRに対するモチベーションを上げてくれる本だと思います。

こういうGORO-man氏のような方がいるならば

VRはもっと面白くなると感じました。

 

ミライのつくり方2020―2045 僕がVRに賭けるわけ (星海社新書)
GOROman(近藤義仁) 西田 宗千佳
講談社
売り上げランキング: 839

 

 

 

肩の高さと骨盤の高さを水平にするといいという話。体調改善・鼻づまり解消など!

以前、体のねじれから鼻が詰まっていると書きました。

確かにそうなのですが、

ねじれの他にも原因がありました。

右肩の高さが高いのと、右骨盤が高いということに気づきました。

その高さを水平にしてやると、鼻がすーっと通るようになりました。

左右の肩の高さを意識するのは、やりやすいので、

これはいい方法です。

 

肩の高さ・骨盤の高さを水平に!

 

なぜこれに気づいたかといいますと、

本を読んだからなんです^^

こういう本を読みまくっているなぁ;

 

正しく理想的な姿勢を取り戻す 姿勢の教科書
竹井 仁
ナツメ社
売り上げランキング: 4,358

 姿勢の本です。

科学的に詳しく姿勢について書かれていました。

肩の高さと骨盤の高さを水平にというのを、

図解入りで紹介されていて、目からウロコが落ちましたw

 

あと立っているときと、座っている時の重心の位置とか、

ねじれを解消するトレーニングとか。

 

amazonでの評価数が多かったので読んでみたのですが

当たりでした!

 

私の場合は、

その"肩の高さを水平に"という言葉を

ホワイトボードに書いて

よく見えるところに置いてあります。

 

そういう普段から意識することはよく目につくところに

書いて置いておくと良いですよ!

ホワイトボードはホームセンターで1000円もしないのでよろしければ

やってみてください^^

 

体の癖をとっていくと調子がよくなっていくと書いてあったので

楽しみです。

なんか調子悪いので;

 

それでは〜。

MSX1版ドラクエ2を購入しました^^いつか市販品レベルのゲームを作りたいなぁ♪

先日MSX1のドラゴンクエスト2(ドラクエ2)を購入しました。

f:id:nyaonyaokun:20180520005406j:plain

 

どうしようか悩みました。

ファミコン版なら100円。

しかしMSX1版だと2000円。

この値段の差!!

 

しかし恥ずかしながら、私はドラクエ2をやったことがないのです。

ぜひやってみたい。

MSX1が頑張っている姿がみたいのです。

 

最初は、ADVゲームの、ウイングマン2がハードオフに入荷したとtwitterで見て、

欲しいなぁ〜と思って見に行ったのですが、

なんと8000円!

ちょっと高すぎる〜。

 

そこで店を変えて、前から気になっていたドラクエ2を購入することに

決めました。

 

いつも思うのですが、

MSX1のソフトは高い;

ファミコンソフトは安いのに。

20年前なら投げ売りだったのに。

 

そしていつも思います。

自分で市販レベルのゲームを作ろうと。

 

マシン語もだいぶんわかるようになってきたし、

MSXのVRAMの構造もわかってきました。

とりあえずはMSX BASICでゲームを作っていますが、マシン語で

作るための下準備は整いつつあります。

 

MSX BASICで作る経験がなければ、マシン語でも作れないと思うので

早く経験を積みたいです。

 

絵を描くツールをつくっていると、市販レベルのドット絵などを

模写できてしまうので、テンションがあがります。

速い動きをさせるためにはマシン語が必要ですが。

 

とりあえずは、BASICの中でマシン語を走らせて喜んでいるレベルですが、

以前はマシン語は全くわからなかったので、

大きな進歩だと思います。

 

今はMSX FANなどのマシン語を逆アセンブルして、こうなっているのかぁ

とわかるレベルまできているのかな?

もっと解析していかなくては!

 

最近、MSXのマシン語で開発されいる方を見かけるので、

すごいなぁ〜僕も頑張ろうと思うわけです。

 

MSXのゲームは、お金にならないので、完全に趣味になります。

本業はアプリ開発になるので、その合間をぬって作っています。

 

ミニMSXがでて、ストアができて、MSXソフトで食べていけると

いいなぁなんて妄想しますが、難しいでしょうね 涙。

 

ブログでマネタイズする方法もないので、うーむという感じですが。

 

 

最近、MSXの自作ゲームをROMカートリッジ化して販売している方を

みつけました。

 

イレバン / ilevan というソフトです。こちらのサイトへ

 

これは憧れますね。

ご自分でROMカートリッジを制作されているのかな?

1本3000円らしいのですが、もうすでに完売みたいですね。

 

すごいなぁ〜。

あとスペインの方でもインディゲームをROMカートリッジにして

販売しているみたいですね。

 

でも売れても100本くらいなんでしょうね〜。

それでは生活していけないなぁ。

 

私のアプリは売れていませんが、1ヶ月で100万円稼いでいる人も

いるらしいので生活するにはアプリでヒットさせるしかないですね〜。

(今、私のアプリの広告収入は月に数百円です;)

 

がんばっていくしかないなぁ (-.-;)y-~~~

 

 

 

PCG お絵かきツールの進捗その2。完成間近です^^

やっと出来てきました、MSX1用 PCG エディタ!

名前も決めないといけないかな。

f:id:nyaonyaokun:20180519180049p:plain

f:id:nyaonyaokun:20180519180103p:plain

2枚目の写真の下の方に、FILE NAME?とでていますが、

DATA文を吐き出す機能を付けました!

ファイルの取り扱いをよく知らなかったので調べていろいろと

やってみました。

アスキーファイルで保存して、(拡張子が.ASCなのかな?)

保存するときに、行番号とDATA 16進数という順で、

保存していけばいいということに気づくまでに時間がかかりました;

f:id:nyaonyaokun:20180519180933p:plain

 

 

 

MERGE ファイル名.ASC で、

プログラムをつなげることができることも知らなかったです;

 

あと、メモリセーブも付けました。

メモリ上にVRAMの内容を書き込んでおくというものです。

すぐにもとに戻せます。

まだ実装していませんが、このデータをBSAVEで保存すれば、

セーブ機能は完成です。

 

あとは、右のキャラクター表の並びを変更可能にして、

マシン語で始めの部分を早くして、

吐き出したDATA文が間違っていないか検証したら完成です。

 

結構時間がかかってしまいました;

なおこのツールはDISK専用です。

テープにDATA文を吐き出せるかよくわからないので....

(テープは拡張子をつけないということなのでどうなるんでしょうか?)

 

まあ、webmsxなどのエミュ専用ですかね^^

実機でも出来ると思いますが、私は実機にデータを持っていく術がないんですよね〜。

 

ディスク壊れているし。

 

SDカードが入るROMカートリッジが欲しいけど、

お高いですし、海外から取り寄せというのがちょっとハードルが

高いなぁと。

公式にでないかなぁ。

 

そんなこんなで、

あと数日で公開できると思います。

もしよろしければ使ってみてください。

 

これが完成したら、またBASICゲームの開発の続きをやりたいと

思います。

でもメインはアプリ制作なので、その合間にやっていくこととなると

思います。

ご了承ください。

(アプリの開発日記をもっと書いていきたいなぁと思っています)

 

では〜。

胡瓜(きゅうり)モグモグダイエット 13日目 効果は継続中です^^

今日で胡瓜もぐもぐだいえっとは13日目です。

もうじき2週間ですね^^

今日の計測結果は....

f:id:nyaonyaokun:20180517111019j:plain

 

おほー!

77.80キロ。

前回よりマイナス0.6キロ!

 

トータルで、1.85キロ減ですよー!

 

まあ、少し便秘でしたので、トイレにいったあとの計測結果なんですけどね;

 

なかなかの好記録。

1ヶ月で3キロ以上痩せることができるかも。

これは期待大です。

 

昨日はきゅうりもぐもぐダイエットのために、きゅうりを大量に

買ってきました。

f:id:nyaonyaokun:20180517112730j:plain

 

計16本。

これでしばらく戦える!

ちなみに1本あたり30円ちょっとでした。

 

もっともっと痩せたいですね〜。

体を軽くしたい〜。

ここ数年のベスト体重が、76.8キロくらいだったので、

そこまでは痩せるでしょう。

その先は、きゅうりの力にかかっています!

 

でもさすがにこれからは、ウォーキングくらいはしないといけないかな。

ちなみに今まで運動はゼロです。

 

それでは早速軽く歩いてきます^^

では〜。

 

www.nyaonyao21.com

「ニャオニャオ21世紀は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。」

当サイトは第三者配信の広告サービス「Google Adsense グーグルアドセンス」を利用しています。 広告配信事業者は、ユーザーの興味に応じた広告を表示するためにCookie(クッキー)を使用することがあります。 Cookie(クッキー)を無効にする設定およびGoogleアドセンスに関する詳細は「広告 – ポリシーと規約 – Google」をご覧ください