プログラミング
前回見事chatGPT先生の嘘を鵜呑みにして間違えたのをアップしてたので訂正。 function! GetTotalUtf8CharCount() let total_chars = 0 let num_lines = line('$') for i in range(1, num_lines) let line_content = getline(i) let total_chars += len(line_…
最近の日記の末尾に書いている(N分、N文字)は適当になんとなくで計算して書いているので、それをコマンド一発で入力できるようにした。 inoremap <F3> <ESC>:InsertElapsedTimeTextSize<CR> command! InsertElapsedTimeTextSize call InsertElapsedTimeTextSize() funct</cr></esc></f3>…
最近の日記には文字数を最後に書いているのだが、その文字数の数え方はこれを書いているNeovimのg Ctrl-gコマンドで出てくるやつを採用しているわけだが、なんか多くねと思って。 今日の日記の文字数は neovim: 2852 g C-g ruby: 2803 `ruby -e 'p readlines…
Haskell Advent Calendar 2024 3日目の記事です。 TypescriptやZigでゲームボーイエミュレータを書いたことがあったのでHaskellでも試して見ました。CPUまで書いて力尽きたのでゲームは遊べません。自分でゲームボーイエミュレータ書いてみたいという方はgbd…
一昨年の夏にどうやってもテスト通らなくて放置してたゲームボーイエミュレータを根本的に書き換えてみたらだいぶましになった。最初はlens/Stateを使う方針でCPUのレジスタなんかをレコードのフィールドにぶち込んでそれらを書き換えていく感じだったが、ざ…
前記事においてよくわからんなとかいってたやつ。単純にキャリーしないときにオンにするかんじやな。 .carry = (a ^ i ^ result) & 0x100 != 0を逆にして.carry = (a ^ i ^ result) & 0x100 == 0でよいかんじでした。 fn addU16ToSingedU8WithCarryHalf(a: u…
ADD SP NやLD HL SP+N命令においての引き算時のキャリーとハーフキャリーのフラグの建て方がよくわからんかってしばらく詰んでた。昔書いたコード適当にコピペしてパスしたけど、よくわからんままやな。普通の引き算とは違うフラグの建て方してるっぽいんだ…
github/kmtoki/gbe-zig エミュレータ開発用テストROMのgb_test_roms/cpu_instrsがパスしたのでcpuはざっくり書けたっぽい。過去にTypescriptとHaskellとRustで書いてて、TSはなんとか動いたけど、haskellとrustはcpuのテストをパスできなかったので三度目の…
zigが流行ってると聞いて。人類に手動メモリ管理はまだ早いんだよな。もっと脳が進化してくれないと難しい。足りない脳でやってくしかないのだ現代人たる我(々?)は。 SDLのビルドでつまづいたりした。自分でbuild.zigいじるのいやだったので、パッケージマネ…
PopOSをインストールして環境設定してたらくそめんどくさかったんだけど、何一つメモ残してないから何がめんどくさかったのかわからないまま、ブログアップロードテストを迎えてしまったらいなう。 GドライブのSSDのフォーマットがMBRだったのでハマる 音楽…
GBEのPUSH/POPについてはそういうことみたいです。
keymap PreonicのQMKに定義してみた。一年ほど前に。キーマップ書いて一切練習してなかったのを思い出してちょっとやってみるかっと思ってファームウェア書き込んだら、修飾キーあたりが動かんくてなるほど、それで練習しなかったのかとなっとく。調べてみた…
{-# LANGUAGE GeneralizedNewtypeDeriving #-} data InnerState = InnerState { _y :: Int } newtype Inner m a = Inner { runInner :: StateT InnerState m a } deriving (Functor,Applicative,Monad,MonadState InnerState,MonadTrans,MonadIO) data AppSt…
<stderr>: commitAndReleaseBuffer: invalid argument (invalid character)で動かないぞ 文字コードが悪いらしいぞ chcp 65001でutf8にするぞ 動くようになったけど文字化けするぞ powershellでエンコーディングの設定するぞ 直ったぞ という話。 app\Main.hs:36:27:</stderr>…
Rustでゲームボーイエミュレーターを書いた 僕は最初、Rustで書こうとしたが所有権のあれこれをクリアできず挫折した。 メモリをRc<RefCell<Memory>とかでごまかそうとしたけど、さすがにあかんやろて思った。 Rc<RefCell<>>のオーバーヘッドがどれくらいなのか知らんけど、メモリアク</refcell<></refcell<memory>…
LY < 10の時になぜかリンクのYがリセットされる LY == 152でリンクの正しいYがセットされる LY == 144でレンダリングをしていた。リンクの座標がリセットされたままだったため非表示になっていた LY > 152でレンダリングするようにしたら、リンクは表示され…
一年位放置してたゲームボーイエミュレータをここ一週間位気になりだして触ってる。前回まではコントローラーの実装が良くなくてオープニングムービーは流れるけど、そこから操作できず進めないというところで詰んでた。そのへんを考え直して実装し直した。 …
地味にべんりなのでprofile.ps1に入れた function bin($n) { return [convert]::ToString($n,2) }
MarkdownのYoutubeサムネリンクが欲しいときにこれ。ブラウザ上でURLをコピーしたら、VimでF3でおk。なお関数名。 inoremap <F3> <C-R>=YankToMarkdownYoutubeLink()<CR> function YankToMarkdownYoutubeLink() let l:w = matchstr(@*,'\vwatch?v=([^&]+)') let l:id = m</cr></c-r></f3>…
powerlineとかairlineとかlightlineとか、結局やめてこれで十分だった。 set statusline=%<\ %n\ %t\ %m\ %r%h%w%=\ \|\ %{&fenc!=''?&fenc:&enc}\ %{&ff}\ %{&filetype}\ \|\ %l/%LL\ %2vC\ %3p%%
rust-sdl2、vcpkgを使う場合これどうりやってもx86をなぜかインストールするので、cargo vcpkg build --target x64-windows-static-mdと指定しても無視されるので直接vcpkgにtripletを指定して叩くと耳を傾けてくれる。 # Cargo.toml [dependencies.sdl2] ve…
ls | ? { Get-Content $_ | ? { $_ -match 'hoge' } }
はまったこと <content type="text/x-markdown">を指定してもplain textで投稿されてしまう 対策 ブログの設定画面からデフォルトの編集モードをMarkdownモードに設定する。 const http = require('https') const fs = require('fs') const process = require('process') const matter = requ</content>…
このブログはMarkdownをGithubにpushすることで公開になる。 流れとしては terminal開く cd $HOME/Github/blog vim開く e strftime("md/%Y%m%d%H%M.md") ブログヘッダーをyamlでtitle,date,categoryを書く 中身書く 保存してvim閉じる git add && git commit…
やりたいこと /blog/[$category]/[$index]みたいなページをビルド時に生成したい やったこと /blog/category/[...id].jsのgetStaticPathsでparamsのidにパスのリストを入れる つまずいたこと /blog/category/[id].jsではネストしたパスのページは生成できな…
ドチャクソかんたんなんのね、いまどき。HeadlessCMSなしでGitだけでブログエントリー追加していく感じなので良くも悪くもいつも通りな感じ。なじみがあるし、リッチコンテンツゼロなので必要十分。ドメイン買おうかどうしようかと微妙な悩み。一年で20ドル…
Nextjsでブログ作ってる。悪くないんだけど、よくわからないところがあってよくわからない。getStaticPropsで作ったデータがトップのコンポーネントに渡されるわけだけど、そのデータはビルドタイムにもっているだけなのか、クライアント側でも持つことにな…
Powershellにおいて、.zshrcや.bashrcにあたるのがprofile.ps1。 echo $PROFILEにどこのパスに設定ファイルを置けばいいか書いてある。 自分の場合はC:\Users\Name\OneDrive\ドキュメント\PowerShell\Microsoft.PowerShell_profile.ps1だった。 profile.ps1…
オープニングが動いたしもういいやって感じになってる。どこを直していいかわからんから。私はこの笑顔を見るために頑張ったんだ...
作り始めて4か月... 16ビット演算系とdaaで死んでたな。 interruptとかtimerとかは通ってないのでまだ道のり遠く。