タグ

emulatorに関するsugyanのブックマーク (11)

  • Writing NES Emulator in Rustをやった

    Writing NES Emulator in Rustというサイトがある。これはRustでファミコンエミュレータ(通称: NES)を実装する方法をステップバイステップで解説してくれる親切サイトだ。NES初心者でも比較的容易に取り組めるので自力でNESエミュレータの実装するのはちょっと...といった人に特におすすめ。自分は数年前にNESの実装にチャレンジしたが途中で挫折した経験もあったのだけど、このサイトで言われた通り少しずつ進めていくことでなんとか一通り実装をし終えることができた(まぁまだバグだらだけど...)。 今回はその中でも初心者が事前に知っておいたら良さそうと思った知識や概念なんかを雑に書いてみる。 ちなみに各構成要素の詳細な解説や仕様などについては日語・英語問わず先人の遺産がネット上に大量に存在しているのでググってほしい。とりあえず自分が何回も参照したサイトだけ下記に列挙して

    Writing NES Emulator in Rustをやった
  • GitHub - alacritty/alacritty: A cross-platform, OpenGL terminal emulator.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - alacritty/alacritty: A cross-platform, OpenGL terminal emulator.
  • 自作のRust製エミュレーターをWebブラウザーで動くようにした

    最近Rustでちょいちょい書いてたエミュレーターをWebブラウザーで動くようにしました。 現在のところ、ゲームボーイ・ゲームボーイカラー、ゲームボーイアドバンス、ファミコン、スーパーファミコンが動きます。 当初からブラウザーでも動かすことを念頭に置いていたので、コア開発が一段落したら対応させたいと思っていました。実際に動かすに当たっては思い通りに進んだところもあり、そうでないところもありといったところで、ところどころで気づいたところを書いておいたら誰かの参考になるかもしれないので、とりとめのない話ですが書き残しておくことにします。 一応ウェブアプリなのにJavaScriptTypeScriptも、ReactAngularも、npmwebpackも使わない、インド人完全無視カレーみたいなものになりましたが、それでもそこそこに良い感じにできた気はするので、私のようにフロントエンドから取り

    自作のRust製エミュレーターをWebブラウザーで動くようにした
  • Rustでファミコンとスーパーファミコンのエミュレーターを書いた

    ゲームボーイエミュレーター、ゲームボーイアドバンスエミュレーターに続いて、Rustでファミコンエミュレーター"Sabicom"とスーパーファミコンエミュレーター"Super Sabicom"を書きました。 名前にRustっぽさを出してみました。 前回作ったマルチエミュレーターMERUのコアとして実装したので、ステートセーブや巻き戻しなどの機能も使えます。MERUの対応コアはこれで4つになりました。 こちらからWindowsLinuxのプリコンパイルバイナリがダウンロードできるようになっています。 他のプラットフォームおよびソースコードからコンパイルする場合は ファミコンとスーパーファミコンどちらも一通り体の機能は実装してあるつもりです。スーパーファミコンは割と細かいところまでちゃんと動くようにしてあるはずなので、動かなかったり表示がおかしかったりするソフトがあればバグですので、ぜひご報

    Rustでファミコンとスーパーファミコンのエミュレーターを書いた
  • Rustでゲームボーイアドバンスエミュレーターを書いた

    一通りちゃんと実装したので、大抵はちゃんと動いてくれるはずです。動かなかったり、画面がおかしかったり、音がおかしかったりしたらバグなので、ご報告いただけるとうれしいです。 エミュレーションコアが2つになったので、せっかくなのでエミュレーションコアのインターフェースを抽象化して、マルチエミュレーターにしました。 リリースページ からコンパイル済みバイナリをダウンロードできます。 マルチエミュレーター エミュレーターを作るうえで割と面倒でバカにならないのがフロントエンドUIの作成です。GUIアプリを作るのはそもそも結構大変で、ましてや昨今のアプリケーションはPCだけでなくスマホやWebといったタイプの異なる複数のプラットフォームで動かしたいというモチベーションがあります。特定プラットフォームにべったりで何となく動くように書けばいいやというのと比べると、取れる選択肢も限られてかなり面倒になってき

    Rustでゲームボーイアドバンスエミュレーターを書いた
  • ゲームボーイエミュレータをGo言語で書いた - undefined

    概要 Goはこれまで量を書いたことがなかったので入門にゲームボーイエミュレータを書いてみることにした。ゲームボーイである理由はたまたまよくできたゲームボーイの資料(http://marc.rawer.de/Gameboy/Docs/GBCPUman.pdf)を見つけてしまったため。 成果物 github.com まだ基的なカートリッジタイプしか実装できていないがそこそこ動き始めたので公開することにした。直近は対応カートリッジを増やしながらWebAssemblyを吐けるようにしたい。 ゲームボーイの基仕様 項目 概要 CPU LR35902 4.19MHz 8bit RAM 8kB VRAM 8KB ROM 256k~32MBit Display 4階調モノクロ、160×144ドット スプライト 8×8 最大40個表示 / 1ライン上に 最大10個表示 背景 256×256ドット ウィン

    ゲームボーイエミュレータをGo言語で書いた - undefined
  • ファミコンエミュレータの創り方

    ------- 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

    ファミコンエミュレータの創り方
    sugyan
    sugyan 2018/09/10
    すごいボリューム…
  • ファミコンのエミュレータをRust / WebAssembly で書き直した - undefined

    概要 以前、JSで書いた(ファミコンのエミュレータを書いた - undefined)ファミコンのエミュレータをRustで書き直してみた。 また、技術的な内容はQiitaの方にも書いているので興味のある方は参照してみてください。(まだ Hello, World!までしか書けてませんが。) qiita.com もともとファミコンのエミュレータって新しい言語を習得するのにちょうどいい題材だったりするのでは、って話しからスタートしてて、よくわからないのでJSで書いてみて、ようやくRustで一通りは実装できた感じ。まだバグや未実装(音声周りやマッパー)も多いんですが、ひとまずはお腹いっぱいな感じ。 成果物 github.com あと、いくつかのROMは以下で遊べるようにしてます。音が出るので注意してください。 またAPUの実装にまだバグが残っているのDCMチャンネルが未実装なので音が変だったり出てな

    ファミコンのエミュレータをRust / WebAssembly で書き直した - undefined
    sugyan
    sugyan 2018/02/08
    失敗動画が面白いw
  • ファミコンエミュレータの創り方 - Hello, World!編 - - Qiita

    この記事は「WACUL Advent Calendar 2017」の18日目です。 WACULでフロントエンドエンジニアをしている@bokuwebと申します。 記事ではファミコンのエミュレータの実装について解説していきたいと思います。 2018/11/21 追記 重複しますが以前発表した資料も合わせて参照してください。 はじめに 以前ファミコンエミュレータをJSで実装した記事を書きました。 開発過程の雰囲気はこちらを参照していただけると掴めるかと思います。 上記の記事では技術的な内容にはほぼ触れなかったため順に解説していこうと思います。 今回はまずはHello, World!までに焦点をあてて解説してみたいと思います。ファミコン関連の解説は検索すると結構ヒットはするのですが、ファミコン体の解説が多く、エミュレータを実装するにあたり、どのような手順で進めてくのが、どのような点に気をつける

    ファミコンエミュレータの創り方 - Hello, World!編 - - Qiita
  • 103139

    エミュレータを作ってみたいなぁという漠然とした思いがずっとあったので、ファミコンのエミュレータを書いている。スクリーンショットにあるような表示はできる。 ファミコンにした理由 エミュレータは作りたいが、よく知らない機械のエミュレータを作ってもつまらないので、多少は親しんだファミコンにした。 一番印象深いゲーム機はスーパーファミコンだが、スーパーがついてないほうが簡単かな、と思ってファミコンにした。 買ったもの カートリッジからROMイメージを吸い出すために、吸い出し機をAmazonで購入した。 GAMEBANK-web.comオリジナル「FCダンパー」 / ファミコン ファミリーコンピュータ Famicom Kazzo DUMPER レトロゲーム 吸い出しツール [0217] 出版社/メーカー: GAMEBANK-web.comメディア: エレクトロニクスこの商品を含むブログを見る ゲーム

    103139
  • ファミコンのエミュレータを書いた - undefined

    概要 ファミコンのエミュレータをJSでだらだらと作ってた。そこそこ遊べるようになったので公開しておく。技術的な内容は、またどこかで発表したり、Qiitaなどにまとめたい。(忘れないうちに。需要があるかは怪しいが。) 随分昔に作ってみたいなーと思いFPGAでの実装を開始したんだけど、早々に挫折した覚えがある。今思うとFPGAの場合タイミングの問題が付き纏うのでJSで書くより圧倒的に難易度も高いし、ハードエミュレータを実装するにしても前段階としてソフトウェミュレータを実装するのが定石っぽいので無謀だったっぽい。 ひとまずMapper0という基的なカセット形式のみに対応し、スーパーマリオブラザーズがそこそこ遊べるくらいを目標とした。 成果物 github.com ファミコンのスペック MPU 6502(RP2A03), 8bit WRAM2KB VRAM 2KB 最大発色数 52色 画面解像度

    ファミコンのエミュレータを書いた - undefined
  • 1