NES コンソール
私たち自身の部品から組む動く NES: 二つのチップをスイッチごとに模擬し、チップ間のつながりはすべて記録済みのリファレンス走行と照らし合わせ、絵の経路はすでに実機で試してある。
6502 の仕事はチップをスイッチのレベルで模擬し、ntsc-crt はコンソールとブラウン管の間の信号を模擬する。このプロジェクトは、その二つが隣人であることをやめて一台の機械になる場所だ: 動く NES をチップごとに組み上げ、二つのチップが出会うところはすべて、信用で済ませずにリファレンスシミュレータの記録済み走行と照らし合わせる。
コンソールの各部分には、それぞれの棚がある
- 遊ぶ: ブラウザの中で動くコンソール。カートリッジはあなた自身のディスクから
- 作る: 同じコンソールと、すべての道具を一つの机に: コード、メモリ、パレット、スプライトのエディタを、自分で並べるウィンドウとして
- 人の速さで見るファミコン: 同じコンソールを、フレームを描き、線に送り出し、パッドを読むところが目で追えるまで遅くしたもの
- チップ: 規約、スイッチのレベルの 2A03 と 2C02、そしてそこから組んだ高速チップ
- 信号: コンソールとテレビの間のコンポジット映像。動くベンチと、スコープで読んだ実機つき
- コンソール: 一枚の基板に載った二つのチップ、そしてその絵、音、遊ぶための窓
- ベンチ: 同じコントローラ入力の下に置いた実機と模型: 計画、製作、そして起きたこと
- 較正カートリッジ: すべての画面が測られるために作られた、私たち自身のカートリッジ
- ノート: コンソールのすべての計画と報告を、扱う部分ごとにまとめたもの
- ここまでの話: スケッチが求めたもの、チップが教えてくれたもの、そしてまだ実機を待つもの
スケッチが求めたもの、そして実機を待つもの
計画は先に書いた: 規約リポジトリのエンドツーエンドのスケッチに、マイルストーンごとの検査がある。そこに名のあるマイルストーンはすべてこの機械の上で組まれ、検査を通っている: 規約、スイッチレベルの二つのチップとそこから組んだ高速チップ、丸ごと組み上がった高速 2A03、基板の糊、一つのクロックで標準テスト ROM を走らせるコンソール、エンコーダを通って取り込み経路を戻る絵、基板自身の音声段を通る音、そして GPU の絵とゲームパッドとブラウザ版を持つ窓。残るのは、スイッチレベルの模型だけでは決められないものそのものであり、各項目は報告に名指しされている: 実基板で NMI が本当に届くタイミング、遊びの検査に入れる実カートリッジ、きちんと終端した映像の取り込み、実スピーカーの下での音の段、コンソールが電源投入時に取る位相、そして模型と実物が食い違うと分かっていてロジックアナライザが決めるダイ自身の発見。ベンチはそれらを閉じる手段だ。信号の側はすでに実在する: 信号のページには実機からデコードしたフレームが載り、コンポジット深掘りはその実機の映像をスコープからレベルごとに読む。
始まり
コンソール全体が拠って立つスケッチ。コードより先に書かれた。
- コンソール全体の計画 Sketch v0.2: 動くコンソールとは何を意味するか、部品がどう組み合うか、N0 から N8 までのマイルストーン、そして道中で下した決定。
リポジトリは公開されている: github.com/tinymachines/2a03 とその兄弟たち。チップクレートは visual6502 系の画像に由来するダイデータを埋め込むため、NonCommercial と ShareAlike が付いて回る。規約クレートは MIT で、何も埋め込まない。