[JavaScript] MSXエミュレーターの「音のもたつき」を追う。割り込みのレベルトリガ化とZ80サイクル精度の修正
No description available.
No description available.
JavaScriptのイベントループにおけるタイマー精度の問題、Z80/6502のCPUクロック(T-State/Cycle)と60fpsフレーム同期の原理、AudioWorkletのサンプルバッファ主導クロック制御、フレームスキップと処理落ち対策コードを徹底解説。
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 (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等)の実装までを網羅。
HLEとLLEのアーキテクチャ比較、実機BIOSの役割と処理の代替、Direct BootにおけるCPUレジスタ・メモリ初期化手順、BIOSサブルーチン呼び出しのトラップ(HLEフック)手法をJavaScriptコード付きで徹底解説。
16ビットアドレス空間の制限、物理メモリと論理メモリのマッピング原理、MSXのメガROMマッパー(Konami/ASCII)やセガのバンク切り替え構造、JavaScriptエミュレーターでの参照切り替えによる$O(1)$メモリアクセス実装コードを解説。
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アーティファクトカラー(紫/緑/青/橙/白)描画、パドル/ジョイスティックのアナログタイマーエミュレーションまでを網羅。
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進数モード)実装とフラグ挙動のデバッグをコード付きで解説。
ポーリングと割り込みの違い、Z80 CPUのINT/NMIライン、IM 0/1/2モードの挙動、EI/DI命令とiff1/iff2フラグの制御、V-Blankやキー入力をWeb上で正確に模倣するJavaScriptコードを解説。
Z80エミュレーターにおけるAND/OR/XOR/シフト演算の役割、0xCB/0xDD/0xFDプレフィックス拡張のデコード構造、switch/caseからルックアップテーブルへのリファクタリングによる命令実行の高速化をJavaScriptコード付きで徹底解説。
No description available.
Astro + Three.js プロジェクトにおける E2E 自動テストと開発者体験(DX)向上の記録。Playwright による待機処理と 404 アセット検知、/test-result.json の保存、Dev モードでの動的警告 UI([ERROR] ボタン・ダイアログ・ターミナルログ連携)の構築手順を解説。