------- GND -- |01 31| -- +5V CPU A11 -> |02 32| <- M2 CPU A10 -> |03 33| <- CPU A12 CPU A9 -> |04 34| <- CPU A13 CPU A8 -> |05 35| <- CPU A14 CPU A7 -> |06 36| <> CPU D7 CPU A6 -> |07 37| <> CPU D6 CPU A5 -> |08 38| <> CPU D5 CPU A4 -> |09 39| <> CPU D4 CPU A3 -> |10 40| <> CPU D3 CPU A2 -> |11 41| <> CPU D2 CPU A1 -> |12 42| <> CPU D1 CPU A0 -> |13 43| <> CPU D0 CPU R/W -> |14 44| <- /ROMSEL (/A
概要 ファミコンのエミュレータをJSでだらだらと作ってた。そこそこ遊べるようになったので公開しておく。技術的な内容は、またどこかで発表したり、Qiitaなどにまとめたい。(忘れないうちに。需要があるかは怪しいが。) 随分昔に作ってみたいなーと思いFPGAでの実装を開始したんだけど、早々に挫折した覚えがある。今思うとFPGAの場合タイミングの問題が付き纏うのでJSで書くより圧倒的に難易度も高いし、ハードエミュレータを実装するにしても前段階としてソフトウェミュレータを実装するのが定石っぽいので無謀だったっぽい。 ひとまずMapper0という基本的なカセット形式のみに対応し、スーパーマリオブラザーズがそこそこ遊べるくらいを目標とした。 成果物 github.com ファミコンのスペック MPU 6502(RP2A03), 8bit WRAM2KB VRAM 2KB 最大発色数 52色 画面解像度
その他、出力基板の作成、出力ケーブル等の準備が必要です。 映像回路の110Ωは、NEWファミコンと同等の出力レベルを得る為の値であり、NTSC基準のレベルにする場合や長いAVケーブルを使う為には75Ωにする必要があります。 220uFのコンデンサはなるべく特性の優れた物を選んでください。 (と言っても、規格表で選んだ物を探すのは大変なので、とりあえずESRの低い物を買ってください) 音声回路の抵抗は、値が前後しても 3:2 の割合が作れればOKです。 10uFのコンデンサは耐圧6V以上、容量1~10uFであれば何でもOKです。 (デジタル音は耳障りなので、こちらはESRが高い方が丸みのある音になります) ◆外付け回路(共通) 映像出力回路ノイズ対策として抵抗の後ろ(出力部分)とグランドの間に330~560pFのセラミックコンデンサ、出力と直列にpHクラスのフェライトコイルを入れるとお札程度
公開しました(過去系) github.com Demo FaithJS Screenshot 作ろうと思ったきっかけ コンピュータの仕組みについて知りたいなら NES エミュ作るのが手っ取り早いと、 優秀な人が強い事を言ってて、僕もコンピュータの仕組みについて知りたかったので、 実装しようと思いました。 まず読んだ本 コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方 CPUやメモリの仕組みを大まかに知ることができる 30日でできる! OS自作入門 OSの仕組みやアセンブラの基本がわかる 自作エミュレータで学ぶx86アーキテクチャ コンピュータが動く仕組みを徹底理解! こちらもアセンブラに慣れるために読んだ たのしいバイナリの歩き方 バイナリに慣れるために読んだ コンピュータの仕組みについて何も知識がなかったので、上記の本を読んで勉強しました 参考にしたサイト NES on
エミュレータを作ってみたいなぁという漠然とした思いがずっとあったので、ファミコンのエミュレータを書いている。スクリーンショットにあるような表示はできる。 ファミコンにした理由 エミュレータは作りたいが、よく知らない機械のエミュレータを作ってもつまらないので、多少は親しんだファミコンにした。 一番印象深いゲーム機はスーパーファミコンだが、スーパーがついてないほうが簡単かな、と思ってファミコンにした。 買ったもの カートリッジからROMイメージを吸い出すために、吸い出し機をAmazonで購入した。 GAMEBANK-web.comオリジナル「FCダンパー」 / ファミコン ファミリーコンピュータ Famicom Kazzo DUMPER レトロゲーム 吸い出しツール [0217] 出版社/メーカー: GAMEBANK-web.comメディア: エレクトロニクスこの商品を含むブログを見る ゲーム
2. 自己紹介:遠藤侑介 • Ruby コミッタ(2008年~) – Rubyのテストを増強した – コードカバレッジ測定機能を 実装した – キーワード引数を実装した – Ruby 2.0 リリースマネージャ だった – 最近は何もしてない 2 ’06下 ’07上 ’07下 ’08上 60 70 80 90 100 coverage(%) 70% 85% C0カバレッジ遷移 3. と私 • 立ち上げの時に @chezou さんに相談を受けた • 初期に数回だけ参加した • Kawasaki.rb #005 (2013-10-23)で発表した – 以上(すみません) • ちなみに Kawasaki.rb #005 で発表したものは 3 4. eval$s=%q(eval(%w(B=92.chr;N=10.chr;n=0;e=->(s){Q[Q[s,B],?"].gsub(N,B+?n)};
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く