ARCHIVE_INDEX / PAGE_7

TOTAL_ITEMS: 878
[JavaScript] MSXエミュレーターの「音のもたつき」を追う。割り込みのレベルトリガ化とZ80サイクル精度の修正
[2026/9/24]

[JavaScript] MSXエミュレーターの「音のもたつき」を追う。割り込みのレベルトリガ化とZ80サイクル精度の修正

No description available.

[CS講座 #08] クロック同期とメインループ — Webブラウザ上で正確な周波数を刻む
[2026/9/24]

[CS講座 #08] クロック同期とメインループ — Webブラウザ上で正確な周波数を刻む

JavaScriptのイベントループにおけるタイマー精度の問題、Z80/6502のCPUクロック(T-State/Cycle)と60fpsフレーム同期の原理、AudioWorkletのサンプルバッファ主導クロック制御、フレームスキップと処理落ち対策コードを徹底解説。

[JavaScript] Commodore 64エミュレーターを自作。BASICが動くだけの状態から、VIC-II・SID・D64・PALを積み上げてゲームが遊べるまで
[2026/9/23]

[JavaScript] Commodore 64エミュレーターを自作。BASICが動くだけの状態から、VIC-II・SID・D64・PALを積み上げてゲームが遊べるまで

JavaScript (ESM) によるCommodore 64エミュレーターの自作記録。MOS 6502コアを継承した6510(非公式命令・RMWダミー書き込み・JSRの読み出し順)、VIC-II(標準/マルチカラー/ECM/ビットマップ、スプライト8枚と衝突判定、ラスタIRQ、バッドライン、縦ボーダーのフリップフロップ、PAL 6569/NTSC 6567R8)、CIA 6526(タイマーA/B、ICR、キーボードマトリクス、ジョイスティック、VICバンク)、reSID WASMをサイクル同期で鳴らすSID、D64パーサーとKERNAL LOAD($FFD5)フック、SingleStepTestsによるCPU全命令の検証までを網羅。

[JavaScript] Atari 2600エミュレーターを自作。真っ黒画面からTIA・RIOT・バンク切替を積み上げてMYST Demakeが動くまで
[2026/9/23]

[JavaScript] Atari 2600エミュレーターを自作。真っ黒画面からTIA・RIOT・バンク切替を積み上げてMYST Demakeが動くまで

JavaScript (ESM) によるAtari 2600エミュレーターの自作記録。Apple II用に作った6502コアを流用し、TIA(ビーム同期型スキャンラインレンダラー、VSYNC/VBLANK/WSYNC、プレイフィールド、プレイヤー/ミサイル/ボール、NUSIZ/REFP/VDEL/HMOVE、衝突判定)、RIOT 6532(128バイトRAM、インターバルタイマー、SWCHA/SWCHB)、TIA/RIOTアクセスを命令の最終サイクルに合わせるビーム同期、AudioWorkletによるTIAサウンド(4/5/9bitポリカウンタ・Div31)、カートリッジマッパー(F8/F6/F4+SuperChip、FA、FE、3F、E0、E7)の自動判別、NMOS非公式命令(LAX/SAX/DCP/ISB/SLO/RLA/SRE/RRA等)の実装までを網羅。

[CS講座 #07] 高級言語によるHLEとレガシーの再現 — BIOS不要起動(Direct Boot)のからくり
[2026/9/23]

[CS講座 #07] 高級言語によるHLEとレガシーの再現 — BIOS不要起動(Direct Boot)のからくり

HLEとLLEのアーキテクチャ比較、実機BIOSの役割と処理の代替、Direct BootにおけるCPUレジスタ・メモリ初期化手順、BIOSサブルーチン呼び出しのトラップ(HLEフック)手法をJavaScriptコード付きで徹底解説。

[CS講座 #06] メモリバンキング(Bank Switching) — 64KBの壁を超えて巨大ROMを読み込む
[2026/9/22]

[CS講座 #06] メモリバンキング(Bank Switching) — 64KBの壁を超えて巨大ROMを読み込む

16ビットアドレス空間の制限、物理メモリと論理メモリのマッピング原理、MSXのメガROMマッパー(Konami/ASCII)やセガのバンク切り替え構造、JavaScriptエミュレーターでの参照切り替えによる$O(1)$メモリアクセス実装コードを解説。

[JavaScript] Apple IIエミュレーターを自作。6502コアの上にDisk II・HiResカラー・スピーカーを積み上げてデモディスクが動くまで
[2026/9/22]

[JavaScript] Apple IIエミュレーターを自作。6502コアの上にDisk II・HiResカラー・スピーカーを積み上げてデモディスクが動くまで

JavaScript (ESM) によるApple IIエミュレーターの完全自作記録。テキストモード40x24のインターリーブVRAMアドレス計算、LoRes 16色グラフィックス、$C000-$C0FFソフトスイッチによるキーボード・画面モード・スピーカー制御、AudioWorkletとサイクル単位トグルキューによる1ビットスピーカー音声合成、Disk II P5 ROM (341-0027) と6-and-2エンコーディングによるDSKイメージのニブル化・ステッパーモーター制御・セクターインターリーブの完全実装、HiRes 280x192のNTSCアーティファクトカラー(紫/緑/青/橙/白)描画、パドル/ジョイスティックのアナログタイマーエミュレーションまでを網羅。

[JavaScript] MOS 6502エミュレーターをゼロから実装。functional_testとdecimal_testを完走するまでの全記録
[2026/9/22]

[JavaScript] MOS 6502エミュレーターをゼロから実装。functional_testとdecimal_testを完走するまでの全記録

MOS 6502 CPUエミュレーターのJavaScript (ESM) 完全実装記録。レジスタ(A/X/Y/SP/PC/P)とステータスフラグ(NV-BDIZC)の個別変数設計、13種類のアドレッシングモードの共通化、JMP ($xxFF) ページのハードウェアバグ再現、ADC/SBC命令におけるOverflow(V)フラグのビット演算、Klaus Dormannの6502_functional_test.binの無限ループ突破、Bruce Clarkの6502_decimal_test.binによるNMOS 6502完全準拠のBCD(10進数モード)実装とフラグ挙動のデバッグをコード付きで解説。

[CS講座 #05] 割り込み(Interrupt)の仕組み — 非同期イベントを検知するハードウェアの割り込み
[2026/9/21]

[CS講座 #05] 割り込み(Interrupt)の仕組み — 非同期イベントを検知するハードウェアの割り込み

ポーリングと割り込みの違い、Z80 CPUのINT/NMIライン、IM 0/1/2モードの挙動、EI/DI命令とiff1/iff2フラグの制御、V-Blankやキー入力をWeb上で正確に模倣するJavaScriptコードを解説。

[CS講座 #04] ビット演算の極意 — 複雑な命令セットを美しく捌く
[2026/9/21]

[CS講座 #04] ビット演算の極意 — 複雑な命令セットを美しく捌く

Z80エミュレーターにおけるAND/OR/XOR/シフト演算の役割、0xCB/0xDD/0xFDプレフィックス拡張のデコード構造、switch/caseからルックアップテーブルへのリファクタリングによる命令実行の高速化をJavaScriptコード付きで徹底解説。

[JavaScript] 自作Z80コアでAmstrad CPC 464エミュレーターを実装。Gate Array・CRTC・PPI・FDCの協調動作と、HALT命令フリーズの壁
[2026/9/21]

[JavaScript] 自作Z80コアでAmstrad CPC 464エミュレーターを実装。Gate Array・CRTC・PPI・FDCの協調動作と、HALT命令フリーズの壁

No description available.

[Astro] #152 E2E自動テストとリアルタイム開発診断UIの実装 — Playwrightによる非同期3Dアセット404検知とDevモード警告ボタン
[2026/9/20]

[Astro] #152 E2E自動テストとリアルタイム開発診断UIの実装 — Playwrightによる非同期3Dアセット404検知とDevモード警告ボタン

Astro + Three.js プロジェクトにおける E2E 自動テストと開発者体験(DX)向上の記録。Playwright による待機処理と 404 アセット検知、/test-result.json の保存、Dev モードでの動的警告 UI([ERROR] ボタン・ダイアログ・ターミナルログ連携)の構築手順を解説。