ARCHIVE_INDEX / PAGE_6

TOTAL_ITEMS: 878
[Astro] #157 Font Inspector — HarfBuzz WASMでフォントの中身を覗く(TrueTypeヒンティングVMの逆アセンブラ付き)
[2026/9/29]

[Astro] #157 Font Inspector — HarfBuzz WASMでフォントの中身を覗く(TrueTypeヒンティングVMの逆アセンブラ付き)

harfbuzzjs(HarfBuzz 14.5.0 WASM)とDataViewの自前パーサーで作るブラウザ完結のフォント解析ツールの実装記録。sfntのテーブルディレクトリ、TTF/OTF/TTC/WOFFの読み分け、glyphToPathとSVGのY軸反転、ffi合字や縦書きのシェーピング、maxpを「VMのスペック表」として読む方法、fpgm/prep/glyf命令の逆アセンブルとFDEF/CALLの関数番号推定、CID-keyed CFFのcharset、AstroでCSSが古いまま配られる問題の回避まで。

[Electron] #01 Live2Dデスクトップマスコットをゼロから作る — VS Code拡張からの方針転換とWindows/macOS配布まで
[2026/9/28]

[Electron] #01 Live2Dデスクトップマスコットをゼロから作る — VS Code拡張からの方針転換とWindows/macOS配布まで

Electron初挑戦で作ったLive2Dデスクトップマスコットの実装記録。setIgnoreMouseEventsとreadPixelsによるピクセル単位のクリック透過、PowerShell常駐+DwmGetWindowAttributeによるVS Codeウィンドウ追跡とDPI換算、pixi-live2d-display 0.4とCubism Core 6の非互換、Idleグループのないモデルへの対処、声・字幕・しぐさを分離したボイスパック設計、Web Audioの音量解析による口パク、メインプロセス経由のVOICEVOX連携、adm-zipによるモデル取り込み、electron-builderでのWindows/macOS配布、skipTransformProcessTypeなどmacOS固有の罠をJavaScriptコード付きで解説。

[CS講座 #12] テスト駆動エミュレーター開発 — ZEXDOC全通へのデバッグ格闘記
[2026/9/28]

[CS講座 #12] テスト駆動エミュレーター開発 — ZEXDOC全通へのデバッグ格闘記

テストオラクルと仕様書駆動開発、ドキュメント化されていないフラグと命令(X/Yフラグ・IXH/IXL)、ZEXDOC/ZEXALLのCRC検査の仕組み、Node.jsでのCP/M BDOSトラップ実装、DAA・BIT・16ビット加算・DD CBプレフィックスの典型バグ、SingleStepTestsによる命令単位の差分デバッグ、T-State・I/O・割り込みなどZEXDOCが検査しない領域をJavaScriptコード付きで徹底解説。

[CS講座 #11] マルチCPUエミュレーション — 複数のZ80を同期させて動かす(アーケード基板の世界)
[2026/9/27]

[CS講座 #11] マルチCPUエミュレーション — 複数のZ80を同期させて動かす(アーケード基板の世界)

並列(Parallel)と並行(Concurrent)の違い、マスター/スレーブ構成、クロックの異なるCPUを共通時間軸で進めるスケジューラー、クォンタムと同期誤差の関係、共有RAMのハンドシェイク問題、サウンドラッチとNMIによるコマンド通信、キャッチアップ同期とインタリーブの一時増加をJavaScriptコード付きで徹底解説。

[Astro] #156 SameBoy WASM — Game Boyエミュレーターコアの自前EmscriptenビルドとAstro組み込み
[2026/9/27]

[Astro] #156 SameBoy WASM — Game Boyエミュレーターコアの自前EmscriptenビルドとAstro組み込み

SameBoyのLibretroコアをEmscriptenでWebAssembly(.wasm)へコンパイルし、Astroページ上で動かす手順の記録。Makefile内の`-Wl,--no-undefined`削除、ビルド出力される.bcファイルの正体、EmulatorJSの`EJS_coreUrl`によるコア差し替え、`ja.json`404エラー対策、サーバーにROMを置かないBlob URLでの安全なローカルROMロード実装まで詳しく解説。

[Astro] #155 Power Mac Emulator — DingusPPC WASMでMac OS 8.1をブラウザ起動(おまけ:Copland D11E4ランチャー)
[2026/9/27]

[Astro] #155 Power Mac Emulator — DingusPPC WASMでMac OS 8.1をブラウザ起動(おまけ:Copland D11E4ランチャー)

DingusPPC(mihaip版WASMビルド)を自前のWorkerで動かす実装記録。C++から呼ばれるworkerApiの口、SharedArrayBufferのロックによる入力受け渡し、OPFS SyncAccessHandleでのディスクI/O、素のHFSイメージにドライバ入りパーティションマップを付け足して起動する方法、ログの洪水対策、Copland版(mist64)との設計の違いまで。

[Astro] #154 Tracker Player — libopenmpt WASMでMOD/XM/S3M/ITをブラウザ再生、パターンをリアルタイム表示
[2026/9/27]

[Astro] #154 Tracker Player — libopenmpt WASMでMOD/XM/S3M/ITをブラウザ再生、パターンをリアルタイム表示

libopenmpt(WASM)+AudioWorkletによるトラッカー音楽プレイヤーの実装記録。パターンの整形表示(format/highlight API)、前後パターンを連結した連続スクロール、Emscriptenが公開していない関数テーブルを拾ってext interactiveインターフェースでチャンネルミュートを実現する方法、Astroのscoped CSSがinnerHTML要素に当たらない問題まで。

[CS講座 #10] 音源チップの波形合成 — レトロゲーム音をWeb Audio APIで発声させる
[2026/9/26]

[CS講座 #10] 音源チップの波形合成 — レトロゲーム音をWeb Audio APIで発声させる

離散信号とサンプリング、周波数計算式(f = Clock / (32×N) / (16×N))、矩形波・LFSRノイズ・2dB刻み減衰テーブル、Game Gearステレオ、SCC/WSG波形メモリ、エイリアシング対策、CPUサイクル付きレジスタキューによるAudioWorklet再生をJavaScriptコード付きで徹底解説。

[Tauri #05] Tauri v2:多機能化したWeb版時計をデスクトップへ移植 — 設定ウィンドウ分離・ネイティブメニュー・トレイ常駐
[2026/9/26]

[Tauri #05] Tauri v2:多機能化したWeb版時計をデスクトップへ移植 — 設定ウィンドウ分離・ネイティブメニュー・トレイ常駐

localStorage.clear()の地雷、WKWebViewでのTouchEvent、requestAnimationFrameと時報、ウィンドウ間のイベント同期、Windowsでのウィンドウ生成デッドロックなど、Web→デスクトップ移植で踏んだポイントまとめ。

[JavaScript] 筆圧対応ペイントアプリを作る。PointerEvent・手ぶれ補正・差分Undo・ag-psdによるPSD入出力
[2026/9/26]

[JavaScript] 筆圧対応ペイントアプリを作る。PointerEvent・手ぶれ補正・差分Undo・ag-psdによるPSD入出力

No description available.

[CS講座 #09] 走査線とVDP描画エンジン — タイルマップとスプライトの画面レンダリング
[2026/9/25]

[CS講座 #09] 走査線とVDP描画エンジン — タイルマップとスプライトの画面レンダリング

CRT走査線とV-Blank/H-Blankの仕組み、VRAM構造(パターンテーブル・ネームテーブル)、スプライトの走査線制限と衝突判定、ゲームギアMode 4の画面クロップ(160x144)、JavaScriptによるスキャンライン単位のグラフィック描画コードを徹底解説。

[Astro] #153 アナログ時計コンポーネントの高度カスタマイズ化 — JSONアセット管理、IndexedDBスキンギャラリー、SE/時報対応
[2026/9/25]

[Astro] #153 アナログ時計コンポーネントの高度カスタマイズ化 — JSONアセット管理、IndexedDBスキンギャラリー、SE/時報対応

Astro + TypeScript + SVG によるインタラクティブなアナログ時計の開発記録。JSONアセット管理、 IndexedDB を用いた背景画像ギャラリー、文字盤デザインやカラーのリアルタイム変更、時報(正時 chime)・SE再生機能の実装手順を解説。