OBONO’s Diary

へっぽこプログラマの戯言

Tweets (Nov 28-Dec 4)

Nov 28

20:11:05 #フィットネスランナー 少し体験版やってみた。Fit Boxing 2 とは違う動きで新鮮だったけど、ロードが頻繁に挟まって、なんかテンポが悪い印象。 #NintendoSwitch URL

Nov 30

15:11:32 はーい URL
21:24:32 21章で放ったらかしにしていた #FE風花雪月 を終わらせるべく、久し振りに遊ぶ。なんか、色々忘れてるぞ... #NintendoSwitch URL
22:08:07 今日のアイロンがけ:ハンカチ1枚、シャツ6着。

Dec 1

23:23:13 #FE風花雪月 青組で難易度ハードをクリア。巻き戻し機能が標準装備なので、クラシックモードでも良かったかも。イングリットちゃん可愛い。 赤組、黄色組の他に第4の勢力が絡んでる感じがするのだが、いろいろ伏線が回収されずに終わってしまった。周回プレイする気力はもう無い... #NintendoSwitch URL

Dec 2

20:36:47 #アストロ忍者マン ムック本届いた URL

Dec 3

19:32:52 (リツイート)
23:12:24 Switch/PS4『アケアカ テトリス ザ・グランドマスター』が12月1日に配信。スピードやテクニックなどを評価するテトリス段位認定システムを搭載 | ゲーム・エンタメ最新情報のファミ通.com URL @famitsuより TGMってもうアーカイブ対象になるような作品になっちゃったのね…

Dec 4

01:01:06 (リツイート)
16:45:26 なんか、Windows 10 がブルースクリーンになることも無く完全にフリーズしてしまい、仕方ないのでリセットしたら、修復を試みていますだの、失敗しましただの、起動中のままいつまで経っても先に進まなかったりだの、なんかヤバイ感じ…
22:58:22 とりあえず、DVD ドライブへの電源供給プラグを抜くことで、安定して起動してくれるようになった。もはや、この作業用 PC の冬の風物詩となりつつある。いい加減、そろそろ新調するか…
23:53:23 Hackster の DIY Arduboy Contest の Crazy Popcorn Time の賞品、早く届かないかな~ URL

ファイアーエムブレム 風花雪月

いよいよ敵の本拠地に乗り込んでラスボスをやっつける…というクライマックスのところで急にやる気が萎んでしまった本作。いい加減、このまま放置しておくのもマズイと思ったので、9か月ぶりくらいにプレイを再開。
再開地点の21章と、その次の22章は連戦で学園パートは無く、粛々と攻略を進めて行き、ラスボスも特に盛り上がることも無く、あっさりとエンディングを迎えてしまった。せっかく生徒たちに媚びを売り続けて教師レベルを上げたというのに、ほとんど役に立てられず終いだったように思う。
お嫁さんは、当初の狙い通りイングリットちゃんが来てくれた。カワユイ。

歴代のシリーズを遊んだ身として、一応、難易度はハードにしたものの、「ユニットがやられたら即リセット」する元気が無かったので、カジュアルモードを選んだわけだが、回数制限があるとはいえ、巻き戻し機能が実装されていたので、結果的にユニットを一人も失うことなく攻略する体裁を取ることができた。これだったら、クラシックモードにしておけば良かったな。今後のシリーズはこれが標準機能となるのかな。

それにしても、なんでラスボスはあんな風になってしまったのか。青組、赤組、黄色組とは別の第四勢力が絡んでそうな気もするが、その辺の伏線は回収されないまま終わってしまったように思う。
他にも、途中でいなくなってしまった脳内の女の子は何者だったのだろうか。レア様は救出できたようなのだが、主人公とどういう関係だったのか。周回プレイすれば謎が解けるのかもしれないけど、もはや、やる気がさっぱり起きない。

来年は「ファイアーエムブレム エンゲージ」は発売されるわけだが、どうしたもんかなぁ…

Tweets (Nov 21-27)

Nov 21

00:53:23 最初に移植した Survivor に加えて、Pin Climb と Ball Tour も追加しました。エミュレーターで気軽にお試しできるようにせねば… URL

Nov 22

00:55:12 ブラウザ上でお試しで遊べるようにしました。 URL

Nov 23

21:23:10 Windows 上での Docker 環境として、かつて Docker Toolbox を導入していたものの、昨年のサポート終了に伴い削除したので、改めて WSL2 + Docker Desktop を導入してみた。
23:10:32 せっかくの休日だったのに、雨で子供達は外で遊べず、紙粘土で遊んでいたので、自分も少し分けてもらって何か作ってみた。 URL

Nov 25

00:19:37 自作キーボードの極み「モールス信号キーボード」:注目デバイスで組み込み開発をアップグレード(7)(1/2 ページ) - MONOist URL この前 Arduboy 向けにリリースしたモールス符号練習機も同じような事ができるわけで、みんな考えることは同じだなぁ…

crisp-game-lib-arduboy

ABA 氏のミニゲームが Arduboy とかで遊べたら面白うそうだな~とか常々思っていたら、本人がそれっぽいことをやり始めた。

ただ、個人的に懸念していたのは、ABA 氏のゲームは敵だろうと地形だろうと大量にアクターを生成して、すべてのアクターがそれぞれ画面外判定や衝突判定などを行うという作りなので――別に、ABA 氏だけがそうというわけでなく、最近のゲームの作り方はむしろそれが標準的なのかもしれないけど、とにかく、実行速度やメモリサイズがそれなりに求められるだろうな、ということ。他のプラットフォームならともかく、Arduboy に移植するのはかなり厳しそうだなと。
M5Stack Basic に勝手移植した際のビルド結果でメモリ使用量のおおよその見当がついていたのだが、実際 Arduboy 環境でビルドが通る程度にコードをいじったところ、

最大2560バイトのRAMのうち、グローバル変数が50291バイト(1964%)を使っていて、ローカル変数で-47731バイト使うことができます。

とか言われる始末。
Arduboy は画面描画用のバッファとして 1kiB 使っているわけで、残りの 1.5kiB で各種オブジェクトを管理しなければならない。とにかく、メモリを削るための施策をあれこれ行ってみた。

  • タイトル画面のリプレイ機能廃止
  • const 宣言だけだと RAM を消費するので、PROGMEM を付与
  • HitBox をはじめとした各種配列の数を半分~1/4に
  • 直線や円弧描画時の四角形の数やパーティクルを間引き
  • 各種構造体について、座標などを int8 で保持し、複数の bool はビットフィールドで実現
  • キャラクターデータや音データは事前にバイト配列の形に変換

他にもいろいろ細かい調整を行った結果、どうにか現実的なところまで削減することができ、Arduboy 上でいくつかのゲームを再現することに成功。

…ということで、元々のライブラリからかなり手を加えてしまったので、改めて crisp-game-lib-arduboy と銘打って GitHub 上に公開した。
ゲームも3つだけ移植して、エミュレーターで遊べるようにしてある。もし、まだ元気が残っていたら、もういくつかゲームを移植するつもり。


個人的には Arduboy は2年前にオワコンのつもりだったが、これといいこれといい、なんだかんだでまだ愛着が残っているのだなと。
半年くらい前に RP2040 を使用した Arduboy 後継機の噂がちらほら出ていたように思うが、本家では Arduboy Mini なるものをリリースしようとしているっぽい。ちっこいガジェットは何とも言えない魅力があるのは否定しないが、あまりに小さいのは Thumby で懲り懲りなので、性能がオリジナルと同一なのであれば、新たに買うことは無いだろうなぁ。
そもそも、RP2040 ベースのプラットフォームであれば、今回のようなケチ臭い作業をしなくてもすんなり移植できたような気がする。いつまで ATmega32U4 なんてへっぽこなチップを使い続けるつもりなのだろうか…

劇場版 ヴァイオレット・エヴァーガーデン

地上波初放送ということで、「劇場版 ヴァイオレット・エヴァーガーデン」を録画しつつ、少し遅れて追いかけ再生して観た。

多くは語るまい。劇中でヴァイオレットが対応したクライアントの顛末が涙を誘った。一緒に観ていたカミさんもウルっと来たらしい。
そして、クライマックスなのだが… カミさんは「○○があまりにヘタレすぎて」と冷ややかな反応。自分も半分同意かな。まぁ、その点を補えるほどに、総じて感動的な良い映画でした。

Tweets (Nov 14-20)

Nov 19

16:51:33パイの実」の約20倍の重量 「パイの実みたいなデニッシュ」がバージョンアップして再販 URL @itm_nlabより これずっと気になっていて、今日たまたまファミマの前を通ったので寄ってみたけど売ってなかった。残念。
19:11:22 @abagames 氏が作成した crisp-game-lib-portable を #arduboy に移植した成果を GitHub で公開しました。 URL
22:26:42 Arduboy 左ボタン反応が悪い件、覚悟を決めて透明シートを剥がしてみたら、ドーム部分が普通にそのまま取れたので、接点部をヤスリで磨き、気持ち少しだけ位置をずらして元に戻したら、反応が改善した。 シートを剥がした跡の見てくれが悪いが、遊ぶ分には全く問題なし。ヨカッタヨカッタ。 URL

Nov 20

00:04:26 @abagames はい。承知しました。こちらこそ、ありがとうございました。
14:06:42 (リツイート)
14:08:00 (リツイート)
20:28:08 実績を2つ解除。まだまだ続けてますよ。 #fitboxing2 #NintendoSwitch URL
22:18:46 国際単位系の接頭語が 31 年ぶりに追加される | スラド サイエンス URL そのうち「クエタが足りない」とか言う世代が出てくるのかな。

Tweets (Nov 7-13)

Nov 11

00:15:14 crisp-game-lib-portable の Arduboy への移植、メモリを切り詰めまくった結果、どうにかギリギリ動作するくらいのところまでは持って行けた。 URL

Nov 12

17:43:20 @abagames ・リプレイとサウンド関連の機能廃止 ・const宣言だけだとRAMを消費するので、PROGMEMを付与 ・HitBoxをはじめとした各種配列の数を半分~1/4に ・直線や円弧描画時の四角形の数やパーティクルを間引き ・cglp内で管理する座標などをint8で保持し、複数のboolはビットフィールドで …で現在90%です URL
17:46:23 @abagames ゲームは SURVIVOR だけにしていて、メニューでゲーム選択する機能も廃止しています。 サウンドの自動生成がcglpの目玉のひとつだと思うのですが、こちらは泣く泣くカットです…
17:51:31 @abagames こうなってくると、ライブラリを使用する側もメモリ消費量を気にする必要があり、ガチガチにメモリを切り詰めたコーディングを意識せざるを得ないので、気軽にミニゲームを作る…という感じではなくなってしまいました。
19:14:15 @ina_ani ツイートを拾っていただきありがとうございます。 こういうテクニックが無くとも気軽にゲームが作れる状況の方が好ましいんでしょうけどね…
19:27:53 (リツイート)
20:43:39 @ina_ani もう少し試したいことがあるので、その辺りの検討が落ち着いたら、成果物を共有できればと思います。今月下旬くらいですかね。
20:45:29 (リツイート)

Nov 13

22:18:01 今日のアイロンがけ:ハンカチ4枚、シャツ6着、長男の給食の割烹着、他。

Tweets (Oct 31-Nov 6)

Oct 31

10:09:42 (リツイート)
21:42:34 Happy Halloween! カミさんがケーキを作ってくれて、自分はクッキーに落書きするなど。 URL
23:01:22 (リツイート)

Nov 3

19:33:24 It’s been a long time! I released 'Morse code trainer' on #arduboy. Let me know your impressions. URL

Nov 4

23:39:06 今回、久々に素の Arduboy で開発したわけだが、いくつか持っている中で黄色いのの四方向の左ボタンの反応が悪くなっていた。手軽に復活させる方法は無いだろうか… URL

Nov 5

01:20:46 (リツイート)
10:10:10 (リツイート)
14:25:19 @n602_NA 現時点の情報だけで修理に着手するのはあまりに危険な気がするので、もう少し情報収集してみます…

Arduboy

Arduboy で新作 "Morse Code Trainer" リリースした。 (公式コミュニティ内トピック) (ソースコード)

アニメーション GIF はこちら。

最後に Arduboy 向けゲーム "Evation" をリリースしてから約2年2か月ぶりの新作。あ、いや、9月に Arduboy を利用した赤外線リモコンを作ったな。まぁ、あれはノーカウントという事で。


当初は欧文モールス符号のみ対応する予定だったのだが、5×5ドットのカナフォントを試してみたかったのもあって、和文モールス符号にもついでに対応することにした。
Arduboy は基本的に Arduino Leonardo だから、HID キーボードにもなれるよね――ということで、PC に USB 接続した際はモールス符号で打った文字を入力できるモードを追加した……のだが、和文モールス符号にも対応している以上、カナも入力できるようにする必要がある。そのために、いろいろ面倒な実装を入れる必要が出てしまった。最終的にローマ字入力、カナ入力どちらも対応している。
あと、モールス符号を打つだけではなく、符号のリスニングも鍛えるための機能も必要だと思い、とりあえずランダムでことわざを例文に符号を出力する機能も追加。この機能についても、和文に対応しているがために、英語だけでなく日本語の例文を用意する必要があり、これをデータ化するのにひと手間かける必要があった。

結局、開発に要した全作業のうち、和文関連作業が半分以上、下手すると 3/4 くらいを占めていたような気がする。今時、和文モールス符号なんて全然使われてないのに、ここまでしっかり対応する必要があったのか、今更ながらかなり後悔。
何にせよ、こうしてせっかくモールス符号練習ツールを作ったわけだし、アマチュア無線の資格でも取ってみようかな…

参考リンク: 5×5ドットフォント完成版 - WentWayUp: WebLog

Tweets (Oct 24-30)

Oct 24

23:56:59 @abagames 過ごしソースいじって、手元の M5Stack で動かしてみました。 URL

Oct 25

00:10:59 誤) 過ごし → 正) 少し こりゃ酷い打ち間違えですな…
20:18:14 @abagames M5Stack 自体触るのが久し振りだったので、1時間半くらいかかってしまったのですが、慣れてる人がやれば10分程度でできそうな感じです。
21:34:00 @abagames コード差分としては、ino ファイルのみの変更で -19 +18 となりました。 URL

Oct 26

23:23:20 crisp-game-lib-portable を Arduboy で動かせたらな~とお試しビルドしてみたが、ROM はともかく、RAM が絶望的に足りない… まぁ、M5Stack 版を作った段階で予想はしてたけどさ。 URL

Oct 27

01:43:06 (リツイート)
22:21:50 @abagames とりあえず、M5Stack Basic 版 crisp-game-lib-portable 用 ino ファイルを gist で公開しました。ライセンスの書き方はこれでいいのかな。 URL
22:27:27 @abagames これだけメモリが不足してると、逆に、どうにかして移植してみようと思ってしまうようなひねくれ者なので、まぁ、期待しないで見守っていただければと。

Oct 28

21:42:09 (リツイート)
22:51:45 @abagames GitHub 見ました。ありがとうございます。新しいゲームを早速取り込んでみました。 URL

Oct 30

23:21:45 Arduboy モールス符号練習機。せっかく ATmega32U4 なんだし、キーボードと認識させて文字を出力する機能を追加。英語/日本語キーボード両対応、和文コードについては Microsoft IME 前提でローマ字/かな入力両対応。 ver 0.03 として GitHub に push しておいた。 URL