Bercriber's Blog

すべて 日記 音楽 短歌 振り返り プログラミング

2022/03/20 18:25


Dump 仕事辞めたいみ

-- blog :: Show a => a -> IO Text
blog 俺

ダンプといえばData::Dumperかトラックかっていう辺りで生きている今日このごろです。このごろとはここ10年を指しています。とはいえ今日はここ1,2週間くらいの話をしたいと思います。お終い。

さて、仕事やめたいみが過去最高に高まっている。~みってもう死語なん?全然見かけんくなったんだがアンテナの方向性がだいぶ変わったからだろうか。つまり、仕事辞めたい。まじでやめたい。数日前に辞めると決断した。はずなんだが、そのはずなんだが、そのはず~~。どういうことだってばよ。はっきりしてるんだよな、ここのあたりでコンフリクトが起こる理由は。「辞めたいのに辞める勇気がない」

箇条書きにするいみあるのかこれ。余計なことばかり書いて。

持病が育てた理性として行き過ぎた相対主義が根付いていて、そのせいで出る杭を自ら叩こうとしてしまう。人生の岐路をこの辺としようよたのむからさ。


2022/03/07 18:41


たなこふ先生のRustでGBE

Rustでゲームボーイエミュレーターを書いた

僕は最初、Rustで書こうとしたが所有権のあれこれをクリアできず挫折した。 メモリをRc<RefCell<Memory>とかでごまかそうとしたけど、さすがにあかんやろて思った。 Rc<RefCell<>>のオーバーヘッドがどれくらいなのか知らんけど、メモリアクセス毎にmemory.borrow()[addr];borrow_mut()[addr] += 1ではむりがあるよなぁと詰んでた。

struct MBC {
  ram: RefCell<Vec<u8>>
}

struct CPU {
  mbc: Rc<MBC>
}

struct PPU {
  mbc: Rc<MBC>
}

こんなかんじで、CPUとPPUからメモリにアクセスしたいと考えていたので構造体に組み込んでいたわけだけど、これじゃだめで


impl Gameboy {
  mbc: MBC;
  cpu: CPU;
  ppu: PPU;

  fn exec(&self) {
    self.cpu.exec(&mut self.mbc);
    self.ppu.exec(&mut self.mbc);
  }
}

こんなかんじになるのかもしれない。不要な時は無駄に引き回したりせずに、必要な時に必要な権限を与えてあげるということを徹底するといいのかもしれない。俺はこの程度のこともわからんかったんだな。。。結局Typescriptで書いたGBEは上側の構造体になっている。

たなこふ先生のCPUのマクロは狂気じみてるが、しこしこ手で書いていた僕も書きながらマクロでなんとかなりそうだなとか思いながらTS書いてたな。ここまでショートカットできるなんて思いもしなかったので怖い。


2022/03/05 17:45


昔の自分のQitta記事を読んで胸が苦しい

当時のテック系文体の流行りなんだろうけどくっそ読みにくいというか内容がない。日本語ではなくコードを読めとして書いていたと思うのでそうなるわな。すごい今見直すと恥ずかしい文章で黒歴史になりかけてる。未熟な自分を許そうぜ。とかいうてますけども、このブログだってそうなんだよな。数年後読み返した時に恥ずかしくなる文体を今書いているのだろうな。今この瞬間もどうにもならない文体をどうにかしたい欲はあるが、普段からまともな文章読んでないせいでこう成り果てているのでしょうがない。文体の遍歴って素人にとってはひとつ楽しみであるのかも知れない。人に読ませるための文章じゃないからなここは。ブレインストーミング重視の場所なのでこれはこれはで良いはずだと思いたい。文体変化やりたいな。


2022/02/27 17:45


自己満足の内側で他人に価値のあることする

私が好きだった人がアカウントを消してしまった。ウクライナ侵略とタイミングと同じだったので派兵されたのかもしれない。?。さて、なんで垢消しするかな。私だったら一応アーカイブ的に残して、別アカ作ってやり直すけど、まぁ文字通り、そのIDで積み上げてきたもの全部消したいんだろうな。なんでや。リアルバレとかだろうか。コンビニ店長とかそんなかんじだったけ?なつい。

認証請求としてのSNS投稿でフォロワーいいね稼ぎで脳汁じゅわじゅわです的なSNSの使い方するのか、それとも単純に自分のログとしてSNSの機能を使うだけなのか、、、私は後者から前者へと移り変わって行く感じになってしまって、それで義務的なSNSネットワーク保守をいやになり、垢消し欲がやってくるというがある。最近もそんな感じがしてきた。noteへの毎日投稿といいねあいさつ周り。楽しい半面、義務的な側面が嫌になるという。。。贅沢なのだろうと思う。いいねするからいいね返しがくるわけで。一方的にいいねがつくのはそれなりに実力や知名度のある人じゃないと無理よね。いいね稼ぎが目的ではないと思いつつ、いいね数がいつも気になるという。。。なんなんだ。

自己満足と多くの人に楽しんでもらえることがイコールではないタイプの人間なので(たぶん)、自分がコツコツとやってることをついでに誰かいいねしてくれないかなとか思っても、自己価値観と社会的意義に差がありすぎて、そこのマッチングが薄い。なのでフォーマットで手繰り寄せてみたりするわけで。最近の私は短歌とか自由律俳句とかプログラミングとか作曲とか。フォーマットを使うのは自作キーボードの成功体験があるからだろうな。でも一般論すぎて当たり前ではあるか。

SNSで認証欲求ハレーションしていくことと、自分が自分のためにしたいこと。この中のバランスの保ち方として、「自己満足の内側で他人に価値のあることする」という方法があるのではないだろうか。

自己満 has 他人に喜んでもらうである人は多かろう。haskell的にはany (\other -> any (\self -> self == other) forSelf) forOtherとかany id $ (==) <$> forSelf <*> forOthersみたいな感じか。私の空白の青春はそれをいかに剥離させ自立したもしくは孤立した価値観で身につけるかというテーマだった気がする。なのにこ一年といい、5年前といい、心の根底の決して切り離すことができないと当時絶望した認証欲求に身を包んでいる。認証欲求は心の構成物質の一つであり、それを切り離すのは生き物として健康を害すものなのだ俺はそうおもう。

他人認証に依存しない娯楽や価値観や世界観。それなりの過去を生き抜いてきたのでいくらか身についているが、それなりの未来を生き抜くにあたって、他人からの信頼を得て、生存を楽にしていく。生存方法の幅を広げていくことが重要なのだろうと体を壊してやっとわかるようになった。というか体が壊れたから自分一人で生き抜くことが困難きわまりないものである状態になってしまっただけだ。十分に健康だったら老後までそんなこと思わなかったのかも知れない。人間の脆弱な体に支配された価値観の一つだ。

辛い現実を生き抜くにあたって現実逃避的な娯楽としていいね稼ぎゲームはとても理解できる。しかし参戦してみたところでそんなに稼げない。武器がないのである。曲もつくれない。歌も歌えない。おしゃべりもできない。絵もかけない。猫も飼ってない。ネタツイもできない。そのような情弱コンテンツの王道を歩むすべはなくレッドオーシャンの恐ろしさに海パンすら買ってない。王道であり覇道であり火道であろう。僕はなんなんだろうか。

そんなこんなで結局の所、私的な話に舞い戻ってくると、引っ越しがしたい転職がしたい。という夢を夢物語として考えている。今日はVtuberの8時間あるゲーム実況動画を見て休日を送っている。今まで全然興味なかったけど、声優のラジオを昔聞いていた感じと同じだなこれおもろいやんけ。しかし時間が溶けて消えていくことに危機感を覚える年齢とやはりお先真っ暗に憂いをもつスペック的に勉強せねば教養を身に着けねばと焦燥感があって素直に楽しめない。なにをしたらいいのだろうか。それさえわからないことないんだけどそんなことしてじんせいむだにしたくない。将来に備える地に足ついた勉強や行動は、クソみたいにつまらないし、自分の惨めさが痛烈に発動していく時間になるので、もういやや、未来で詰んだらその時で終わりでいいかと思ってしまって続けられない。投げ出してしまう。今ココにある娯楽に飲み込まれていく。なんなんだろうか俺は。どうしたってくそだ。将来お金に困ったり仕事に困ったり生活に困ったりした時に私は私を終わらせたりしないだろう。惨めに生き抜くであろう。であるならより楽に生きるべく今から備えねばならないのは自明じゃないかくそ。なんなんだ。

私から私を奪うその人と同じ名前の私だった


2022/02/24 15:35


リンクのY位置


2022/02/23 19:27


またゲームボーイエミュレータ触ってる

一年位放置してたゲームボーイエミュレータをここ一週間位気になりだして触ってる。前回まではコントローラーの実装が良くなくてオープニングムービーは流れるけど、そこから操作できず進めないというところで詰んでた。そのへんを考え直して実装し直した。

ジョイパッド操作を読むとき、JOYPに書き込みが発生する。アクションか矢印のどちらとしてキーマトリックスを認識するかフラグを立てる。フラグが立ったタイミングでJOYPにジョイパッド入力を書き込む。それだけのことなんだけど。GUIのキーイベントのタイミングでJOYPを更新してたので、CPUのタイミングとマッチしていなくて認識されなかった。キーマトリックス操作のレジスタの性質上、JOYPは一回リセットが入るので、CPUのJOYPのWrite/Readのタイミングで実際のキー入力を別で保存しておいたデータからJOYPを生成する必要があった。ソフト側からキーマトリックスを操作する感じを理解できていなかったのが敗因。

ディスプレイも、スプライトの位置やウィンドウの位置が合わなかったりしてたけど、これも解決した。バックグランドマップ上でのOAM[0,1]、WX、WYかと思ってたけど違って、144x160の実際の液晶ディスプレイ上での位置だった。BGマップはSCX,SCYでくり抜かれる用のバッファーだった。グローバルなバッファーがあってそこに全部書き込まれてて、スクロールで抜き出す認識だったけど全然違った。PPUはだいたいこれで良くなったが、まだ表示されないスプライトがあったり、なぜか肝心のプレイヤー、リンクが表示されなかったりしてる。スプライトのYかXが0であった場合、そのスプライトは表示されない。リンクのOAMもなぜかYが0になっていて表示されない。MBCにlogを噛ませてみると、どうも正しい座標を書き込んではいるが、すぐリセットもされていて、ディスプレイのレンダリングのタイミングではリセットされてるので表示されないっぽい。PPUのフラグ管理かクロックの同期が悪いのか、てかなんでプレイヤーの座標のリセット入るんだよ。またしばらく詰みかなぁ...タイマー、割り込み系が怪しいかとおもったけど、LCDC以外割り込み発生してないっぽいし...わからんな...

PPUしっかり実装できても、APU(音)まったく触ってないのでまだやることたくさんありそうで良い。MBCもMBC3RTCとかやらんと、ポケモン動かないからな。長いな。


2022/02/20 18:47


Powershellで数値を二進数に変換

地味にべんりなのでprofile.ps1に入れた

function bin($n) {
  return [convert]::ToString($n,2)
}

2022/02/19 18:17


BORUTO

まとめ買いしてしまった。ナルトがいる以上戦闘能力のインフレが留まることをしらないのは少年漫画的にしょうがないが、そこでナルトの九尾もサスケの輪廻眼も消してきた。さて少年のような心のままのおっさんには普通にクソ面白いんだが。やめろそんなにおっさんではない。


2022/02/19 18:13


シメジ シミュレーション 03

世界の正体が晒され再デプロイされたぞ。おねえちゃんがリビルドしたのだ。夢の結晶としての石は物質的で触れることができるし共有もできる。


2022/02/18 18:33


Test

hogehoge



31