2021年やったことまとめ

今年やったことをまとめて自己肯定感を上げよう (公開はおまけ) という趣旨の記事です。

TwiLive

Twitterハッシュタグを使って実況できる macOS アプリケーションです。

昔 AppKit で書いたやつを SwiftUI で書き直しました (SwiftUI-Introspect をかなり使っていますが…)。

ビルド配布はありませんが (そのうち用意するかも) 良ければ手元でビルドして使ってみてください。SwiftPMオンリーなので xcodeproj を開いて Run するだけです。

github.com

iMast

iMast も 2021 年で4周年を迎え5年目に入りました (ということは来年は5周年………!?)。

4年もやっていると実装したい機能もあまりなくなってくるので、4周年では細かいところの修正くらいしかしていません。

github.com

4周年のあと Swift 5.5 で全生物待望の async/await が来たので Hydra のasync/awaitもどきから移行(ついでにAlamofire剥がし)していますが、気が向いた時にゆっくりやっているので5周年に間に合うかどうか怪しいところです。

StarlightResize

DMM版(Windows版)デレステが来たのですが 1920x1080 までしか拡大できなかったり位置を手でいじるのがだるかったりしたのでいい感じにリサイズしてくれるツールを作りました。

github.com

rinsuki.hatenablog.jp

gigazineの記事にもなりました。

gigazine.net

nostaldon

メンテナンスモードに入った jQuery UI を懐かしむために jQuery UI で ちょっとした Mastodon クライアントを作りました (LTLとFTLしか見れないけど…)

github.com

macOS 環境で gitea の日本語フォントをいい感じにした

現在の gitea を macOS の日本語環境で開くと日本語の文章に Hiragino Sans W4 が使用されるのですが、基本的に macOS 環境の日本語は Hiragino Kaku Gothic ProN W3 で表示される (ウェイトが違う) ので違和感があります。

これが気になって仕方なかったので、Hiragino Kaku Gothic ProN を優先する Pull Request を送ってマージされました。

github.com

Mastodon にちょびっと貢献

今年も Mastodon にちょびっと貢献していました。

github.com

github.com

Homebrew の Formulae を追加したり更新したり

corepack (Node.js のパッケージマネージャいい感じにするくん) が使いたかったので Formulae を追加する Pull Request を送ったところ、無事マージされました。

github.com

その他にもちょいちょい Formulae の更新をする Pull Request を送っています。

github.com

github.com

github.com

Misskey

なんか知らんけど今年も collabolator なのでちょっとリファクタリング系の Pull Request を書いたり来た Pull Request につっこみを入れたりしていました。ユーザーとしてはほとんど使っていませんが…。

Bad Apple!

UEFI で再生したりトグルスイッチ (NSSwitch) で再生したりしていました。

www.youtube.com

www.youtube.com

SwiftMsgPack に NSNull のハンドリングを追加

もう何で必要だったのか忘れてしまいましたが、何かで必要だったので Pull Request を送ってマージされました。

github.com

iPhone as a DAC

一時期 Apple T2 が積まれた MacLinux を動かしていたのですが、なんか内蔵DAC用のドライバがダメでイヤホンジャックが使えなくて困ったので、iPhoneに波形データを配信する TCP サーバーを立てて usbmuxd で Linux から繋ぐことで無理矢理解決しました。

github.com

READMEには PulseAudio で使う方法しか書いていませんが、やろうと思えば Windows でも macOS でもなんとかして使えるでしょう。

DeSmuME の CI に macOS ビルドを追加

DeSmuME はニンテンドーDSというゲーム機のエミュレータです。

DeSmuME には Interface (ちゃんと読んでないけどたぶん RetroArch から使われる libretro の dylib) とそうでないもの (普通のアプリケーション) のビルドがあり、Interface のビルドはこれまでも macOS を含む Windows, Linux, macOS で回っていたのですが、アプリケーションの方をビルドするCIは Linux でしか回っていなかったので、macOS ビルドを追加する Pull Request を送ったところ、無事マージされました。

github.com

Joy-Con as a DSU Server

昔吸い出した Wii のゲームを遊びたくなってストレージから掘り出したのはいいのですが Wii リモコンが見つからなかったので Nintendo SwitchJoy-Con を DSU Server 経由で Wii リモコンとして Dolphin で扱うやつを書きました。

github.com

ちなみにこの間部屋の掃除をしてたらWiiリモコンが出てきたのでこれはもう用無しになりました。

Android Emulator にいたずら

Android Emulator に DYLD_INSERT_LIBRARIES でコードを入れて、Android Emulator を無理矢理フルスクリーンに対応させたりクロマキーで透過したりなどのいたずらをしていました。

github.com

Apple Music.app のmusicdbファイル解析

プロプライエタリな musicdb のフォーマットを解析して、SQLiteデータベースに中身をエクスポートするスクリプトを書いていました (とはいえ基本的なところは先人がやっていたので不明とされていたところを埋めていっただけです)。

Apple Silicon Mac が来て macOS VM が手軽に使えるようになったら再開しようと思っていますが、わかるところがあったらぜひ Pull Request をください。

github.com

プチコン3号 (SmileBASIC) で WASM

WASMをプチコン3号の SmileBASIC に変換するスクリプトを書いていました (int32関連の一部と制御命令の一部しか実装してないけど)。

最適化もぜんぜんしていないので、今のところ他の言語がプチコンで動くと面白いというだけです。

github.com

古いニコニコ動画のエミュ鯖

Internet Archive を見ていたらかなり古いニコニコ動画のプレーヤーのswfが Internet Archive にあることに気づいたので、エミュ鯖を書いて動かしました。

github.com

Among Us 周り

現在の Among Us の通信はオンラインの場合すべて DTLSv1.2 で暗号化されるようになってしまったのでローカル通信でしか意味がありませんが、当時はオンラインモードでも生のUDPパケットで通信していたので、パケットキャプチャでゲームをリプレイできるようなものを (昨年から引き続き) 作っていました (https://github.com/rinsuki/AUEtherCapture)。

とはいえ大切なことは基本的に https://github.com/codyphobe/among-us-protocol に書いてあったのですが、Airship アップデートで座標の範囲が変わったりしていたのでそこを最新版に合わせる Pull Request を送ったりしました。

github.com

github.com

サーバーが不安定な時でも遊ぶために ローカル通信 over Internet を作りたいと思い続けて年末になってしまいました (まあ公式サーバーが安定してるのもあるけど)。きっとこのまま来年も思い続けて終わるのでしょう。

Three.js の types 改善

上に関連してリプレイをゲームに合わせるためにゲームのファイルを読んでグラフィックを再現する新リプレイプレーヤーを開発していたのですが (諸事情によりボツ) 、マップの一部で3Dモデル (中身は2Dだけど) が利用されており、それを Three.js の Mesh に落とす際に attribute の名前が補完されなかったのが面倒くさかったのでデフォルトのシェーダーが取る attribute の名前が補完されるようにしました。

github.com


来年は Apple Silicon Mac が年明けまあまあすぐに来る(はず)なのでまた変なものを作ってインターネットに不法投棄流しておこうと思っています。これからもよろしくお願いします。

それではよいお年を。