7. 掲示板 |
880. Anonymous 2002年06月02日(日) 12時00分54秒 878. Kiさん へ もう流れてしまいましたが。 838. マッキイさん の書きこみを見る限りでは、80x86:特権命令に関する 十分な知識を持っておられるようです。 ”giveio.sys" とか "porttalk"とか を既に試してみたと 言っておられます。 "porttalk"に付いては、私もここで初めて知りました。 いい物を教えて頂いたと感謝しています。 ですので、80x86:特権命令に関するI/O制限に付いては 既にごマッキイさんはご承知の事と思います。 "DISKTAKO"のように吸出しに速度適なの制約が無い限りは、 あえてデバッガ・ビりティで劣るDOSの環境でやる必要性は 無いと思います。 また、先の二つを知っているくらいの方であれば DOSエクステンダーの事も ご承知の事かと思いますが、 どうでしょう・・・ >868. マッキイさん いろいろなマッパに対応可能な汎用的・・・ ハードの方は、基本的にどのマッパでも対応出来るハズなので 後はソフト次第です。 でも、大概は手持ちのの物が1つ吸えると、次も吸いたくなります。 気が付くと手持ちの物全てが吸い上がっている事になってたりします。 そんな物です。 879. KNさん 2002年06月02日(日) 11時53分09秒 皆さんこんにちは。 PCエンジン吸い出し機を作ろうと思いましてゲ−ムラボ97年8月号、98年6月号と工具一式と材料一式と、電子工作の本を揃えたのですが、回路図がイマイチ良くわかりません。どうしたら、宜しいでしょうか? 878. Kiさん 2002年06月02日(日) 11時14分25秒 独自に吸出しを行なう場合は,簡単にやろうと思えばやはり 純粋な MS-DOS 環境(非Windows環境)で行なうことになるのではないかと 思います.なぜかというと,NT系の OS で inp(), outp() を使うと強制終了 されるからです. MS-DOS 用の開発ツールには,DJGPPを利用すると良いと思います: ttp://www.delorie.com/djgpp/ このC言語コンパイラから出力される実行ファイルは MS-DOS の実行形式で, 見かけは 16bit の実行形式ですが,内部では 32bitで動作します. ですので煩わしい 64KB の制限を意識する必要がなく,しかも inp() や outp() が使えます. Windows9x/Me の場合は,inp(), outp() を使っても落ちないのと, Windows9x/MeがDPMIサーバーを持っているので,Windows上で MS-DOS 用の吸出しプログラムを実行し,吸出しを行なうことが可能です. しかし,NT系では純粋な MS-DOS 環境を用意する必要があります. 純粋な MS-DOS 環境でDJGPPの実行ファイルを実行する場合は, 「CWSDPMI」という DPMI サーバを別途用意する必要があります: ttp://www.dbit.com/pub/cwsdpmi/csdpmi4b.zip あとは,純粋な MS-DOS 環境を用意するだけです.これは, Windows9x の起動ディスクがあればこれを起動すれば得られますし, Windows XP の場合は,CD-ROM に Windows Me と同じ MS-DOS 起動 ディスクのイメージと起動ディスクの作成ツールが用意されている ようです.これを使って起動ディスクから PC を起動すれば純粋な MS-DOS 環境が得られます. Windows NT や Windows 2000しか持っていない方で,純粋な MS-DOS 環境を得るには DR-DOS という MS-DOS 互換のものを使うらしいです が(そんなムチャクチャな…),私は使ったことがありません. DJGPP のプログラム+CWSDPMIがDR-DOS上で動作するかどうかは確認 していないので参考程度に留めておいてください. ↓DR-DOS情報 ttp://www.atmarkit.co.jp/fpc/pchints/019getdrdossys/get_drdos_system.html 純粋なDOS環境が得られれば,あとは自分で作成した吸出しプログラムと CWSDPMI.EXE を同じディレクトリに置けば,期待通りにプログラムが動いて くれるハズです. 877. マッキイさん 2002年06月02日(日) 01時55分20秒 Kiさん、匿名さん、うっちゃんさん やっぱりノイズの関係で、ノートでは「たまたま」上手くいったけど…、つーことなんでしょうかねぇ。 とにかくパスコンと電源見直しは、いずれ試してみます。いろいろと教えていただき、ありがとうございます。 876. うっちゃんさん 2002年06月02日(日) 01時29分14秒 パソファミ最新版、バッファなしで、ウチのPC(2GHz FSB400MHz)でちゃんと吸い出せてますね・・・。 875. Anonymous 2002年06月02日(日) 01時14分12秒 872. マッキイさん へ 今晩は、 >電源はパソの電源から5V 手軽で便利なのですが、大電流を流すPCのスイッチング・レギュレータはかなりノイズが大きい という事をご承知おき下さい。 しかも電源容量が相当大きいので、ノイズでトラブルった場合には チョットばかしのケミコンを付けた所でビクトともしません。 という事ですので、経験の少ない方にはあまり向いていないと思いますが・・・ 手馴れているので あれば話は別ですが 特定のカセットが上手く行かない 等の不要なトラブルを避ける意味では DCアダプターあたりから3端子で作るほうが安心かと思います。 もちろん、PCの電源では絶対に動かないと言っているる訳では 有りませんので、その点は予めご承知おき下さい。 874. Anonymous 2002年06月02日(日) 00時45分36秒 867. Kiさん どうも有難うございます。 >グーニーズがあります.あと SUNSOFT のゲーム・・・ 手元にあったのが、グーニーズだけっだののですが、 一応 蓋を空けて中を追っかけてみました。 構成は、HC139+HC74 P−ROM=256KBit、 C−ROM=128KBit の構成です。 パターンを追って論理を見てみると 確かに $6xxxで C−ROMの切り替えを行っているようです。 下位で切り替えるヤツが 何かあったような気がしていましたが 手元に有って 忘れられていたんですね。 情報どうも、ありがとうございました。 >私はスターソルジャー(CNROM)の一部を破壊・・・ 運が悪いと、こんな事もあるですね。 天落で イッテしまった事は何度か有りますが。 バス・コンフリクトで、壊れた事例は初めてて聞きました。 これも注意点として 参考にさせていただきます。 色々と有益な情報を頂き、どうも有難うございました。 873. Kiさん 2002年06月02日(日) 00時08分04秒 パスコンは必ず付けてください.各ICのVccピンとGNDピンに 0.1μF程度のセラミックコンデンサを付けましょう. セラミックコンデンサというのは,茶色のディスク形状の コンデンサで,0.1μFだと104Kとか104Zとか書いてあります. >ただ自分でいろいろ考えながらプログラム作ってうまく動いたら、例え1つのROMだけしか吸い出せなくても嬉しいかな、と。 すばらしいですね(^^).このページはそもそもマッキイさんの ような方のためにあるのだと思います.がんばってください. 872. マッキイさん 2002年06月01日(土) 23時28分10秒 管理人さん、ササBさん、フォローありがとうございます。 回路は最新版通りHC645つけてます。ただパスコンはつけてないんですよね(これも回路通り?笑)。 前にも書きましたが、友人の古いメビウスノート(Win95)借りたら吸い出せたので、その環境なら動くのは確かです。 私のは自作パソでCeleron950MHz、チップセットはPLE133、OSはxpです。電源はパソの電源から5Vを引っ張ってきてます。これはメビウスの時もそうしたので、違いと言えば、OSと、あとはパソ自体のスペックということになりますが。 871. 孝之介さん 2002年06月01日(土) 23時07分14秒 FM−TOWNSのエミュレータ、「うんづ」を試してみました。 http://members.tripod.co.jp/townsemu/ 実機からのROMの吸い出しも自動だし、正直ここまでちゃんと動くとは思っていませんでした。 「フラクタルエンジンデモンストレーション」が完璧に動いたのには、ちょっと感動してしまいました。 何しろ、あれは目玉のタウンズでは、ちゃんと動かないのですから。 パソコンの時代は進歩しているのですねぇ。 870. ササBさん 2002年06月01日(土) 23時06分21秒 >マッキィさん >1つ思ったのですが、CPUクロックが950MHzだと早すぎて、 >回路への制御信号が安定しない、なんてことは…ないかな? いや、ないとは言いきれないと思いますよ。CPUクロックというよりはベースクロックが早くなってきてるのが問題を引き起こす原因になっている気がします。M/B上のパターンの部分でクロストークか何かしているような?それでパラレルの信号波形が崩れてしまう、と。あくまで仮定ですが。 波形が崩れる問題についてはエミュスタさんの言うようにHC645などのシュミットバッファを噛ませればある程度は改善できるかと。 波形の変形と修正についてはこちらにいくつか書かれてましたよ。 http://www.ops.dti.ne.jp/~ishijima/sei/ 869. エミュステさん 2002年06月01日(土) 22時46分03秒 パソファミは、まずバンク切り替えなしでPRGを吸い出して、それのパターンを見てタイトルの自動判別をしていますね。 パソファミの自動吸い出しウィンドウの、ゲーム一覧表示ボタンを押すとリストが出てくるんですが、 パソファミにはゲームタイトルと、それに対応するマッパ、データサイズがあらかじめインプットされているみたいです。 Kiさんや858の方はすごい技術力を持っている方なので 敷居が高く感じてしまうんですが、 自分で0からプログラム作れたら、完全ではなくても、それはすばらしいと思います。 という自分も、恥ずかしながら吸い出しの構造はイマイチよくわかっていなくて、 まだまだ修行の身です。自慢じゃないですが、はっきり言って、6502なんて全然わかっていません。(^ ^; ちなみにマッキィさんが使っているPCってなんですか? 僕の場合、VAIO Note PCG-F75では、電源を3Vにしないと安定しませんでした。74HC645をはさんだら解決しましたけど。 868. マッキイさん 2002年06月01日(土) 21時06分34秒 どうもご無沙汰です(笑)。別に雲隠れしていたわけじゃないです。 なるほど皆さんの話、読んでいると吸い出しって奥が深いんですね。パソファミの吸い出しプログラムが、起動すると自動的にタイトルやらマッパやら判別してくれるんで、てっきりそういった情報がROMのどこかに書き込んであると錯覚していたんですが。先人達の積年の試行錯誤の賜物だったんですね。私みたいなのが挑戦するのは、ちょっと無謀かも。 まあ、そんなにいろいろなマッパに対応可能な汎用的なものを作るつもりではありません。ただ自分でいろいろ考えながらプログラム作ってうまく動いたら、例え1つのROMだけしか吸い出せなくても嬉しいかな、と。 どうも皆さんのレベルからすると程度が低くてすみません。 結局、パソファミ最新版も私のPCでは吸い出せませんでした。1つ思ったのですが、CPUクロックが950MHzだと早すぎて、回路への制御信号が安定しない、なんてことは…ないかな? 867. Kiさん 2002年06月01日(土) 18時54分45秒 >UNROM(#2), CNROM(#3), GNROM(#不明) すみませんでした.カートリッジ基板に印字してある名前 のようなものです.(#2)とか(#3)とかは,iNESの番号です. これらのカートリッジに共通しているのは,バンク切り替えに 74HC161を使っていることです. >OE に -A15 おっしゃるとおり,一瞬やってしまっても大丈夫だと思いますが,私はスターソルジャー(CNROM)の一部を破壊してしまった ようで,裏ソルジャーがキャラ化けしてしまっています.(--; >参考までに、”タイトル名”等を お教えいただけませんでしょうか? $6000 でバンク切り替えをするカセットに,ツインビーや グーニーズがあります.あと SUNSOFT のゲームにも多く 見られます(アトランチスの謎,マドゥーラの翼,etc.) 独自に ROM カセットの基板を作っているメーカーには 多いようですね.$5xxxで切り替えるカセットについては, 失念しました.すみません. 866. 孝之介さん 2002年06月01日(土) 17時59分06秒 TOWNSはとても良いパソコンですね。 386の16MHzと言っても、決して遅くなく、たいていのことは出来てしまいますから。 さすがに動画取りこみとかは出来ませんが、音声のデジタルサンプリングとかは、標準機能で付いてますからね。 何よりあの、リセットボタン押し放題の、絶対壊れないOSが忘れられません。 TOWNSエミュレータとか出来てるようなので、試してみようかな。 865. エミュステさん 2002年06月01日(土) 17時15分03秒 仰るとおりで、以前は名前が空欄になっていると投稿できないようになっていたので 先月26日にスクリプトを修正したんです。 だから、名前空欄で投稿できるようになったのは、最近からです。私もすみませんでした。 ・・まあ、どうでもいいことですよね(^ ^; 864. Anonymous 2002年06月01日(土) 16時55分00秒 あ、本当だ 863. Anonymous 2002年06月01日(土) 16時53分52秒 管理人さん、ご指摘ありがとうございます。 以前何も入れずに投稿したら 書いたやつがパーになったことがあったので、 何か入れなければなら無いのだろうと考えておりました。 以後は、ご指導に従います。 862. エミュステさん 2002年06月01日(土) 14時47分52秒 >そんなに早く作れるわけ無いだろ!のご指摘も無く、ちょっと寂しい今日この頃、、、 今日の午前に孝之介さんの記事を見て、確かに不思議に思ってました。 そっかー。 そうだったのか。。 自分はTOWNSU Freshとフリコレ8を同時に買いました。 初めて買ったPCだったのですが、特にやることも見つからず、結局ほとんど使わなかったです。 もっと早く吸い出しやエミュに出会っていられたら・・という思いです。 今から製作するのはどうか、ということですが 最初にTOWNSを触った頃の、わくわくした思い出というか、子供心みたいなものを忘れたくなくて これからもTOWNSを使い続けていきたいな、という思いがあるんです。 861. Anonymous 2002年06月01日(土) 14時33分57秒 管理人です。 858の方へ。 名前を空欄で投稿すると、このように匿名表示されるようになっていますので。 別に、どうでもいいことなんですけどね。(^_^) 860. 孝之介さん 2002年06月01日(土) 14時33分02秒 そんなに早く作れるわけ無いだろ!のご指摘も無く、ちょっと寂しい今日この頃、、、 さて、回路について検討して見ましたので、ちょっとご報告を。 もともとあの回路は、フリーウェアコレクションの初期の方に収録されていた物で、元の作者の方は、ファミコン用、スーパーファミコン用を発表されています。 今回の物を見比べましたが、ゲームボーイ用の付加回路が増えている以外は同じ物のようでした。 スーパーファミコン用の物もファミコン用に付加回路をつけるだけですので、この回路は、ファミコン、スーパーファミコン、ゲームボーイと3種類のカセットに対応する「すいすい」並の高機能回路と言うことになります。 しかしながら、FM−TOWNSは386の16MHzですので、今から製作するのはちょっとどうかと、、、 配線は、結構大変です、、、 結局、あの基板は何年も前から今日まで、ちゃんと動いたことは、一度も有りません、、、 859. ササBさん 2002年06月01日(土) 12時33分39秒 >kenjinさん 今現在、市販ソフト動くDCエミュは無いっすよ(汗。 それにここは吸い出し機の自作についてのサイトですよ。 858. 856. Kさん さん 2002年06月01日(土) 11時31分43秒 マッキイさんは音沙汰が無くなってしまいましましたので 代わりにお相手させていただきます。 >UNROM(#2), CNROM(#3), GNROM(#不明) 聞きなれない略号で、よくわかりません。 宜しかったら ご説明お願いします。 >OE に -A15 回路図を見ていないのでハッキリした事は判りませんが ご説明の接続だと、おっしゃる通りだと思います。 ただ、短時間のデータ・コンフリク程度では、破壊までに至る可能性は 少ないと思いますが、ROMに取って望ましい状態で無い事は その通りだと思います。 配線を変える事が最も望ましい対処でしょうね。 >ROMカセットによっては,$8000以降ではなく,$5xxxや$6000 私も、確かそのような物が有ったように思えて(Namco/Bandai) "mappers.doc"を眺めてみたのですが、それらしい物は見あたら無いんです。 資料が正しくない可能性も十分に有ると思いますので。 参考までに、”タイトル名”等を お教えいただけませんでしょうか? >MMC1 などに シリアルもどきの設定法だったと記憶に有りますので、そうかも知れませんね。 857. kenjinさん 2002年06月01日(土) 11時00分10秒 ドリームキャストのエミュを落としてソフト「ギガウイング2」をやろうと思っているのですがDCエミュの使い方がよくわかりません。ファイル形式はcdiでした。 吸出しとかと全然関係の無い話ですみません。 誰かわかる方はロードのしかた等を教えて頂けませんでしょうか? 856. Kiさん 2002年06月01日(土) 10時35分19秒 >マッキイさん 自前でROMカセットの吸出しを行なう場合は, ものによっては書き込むアドレスに注意が必要です. UNROM(#2), CNROM(#3), GNROM(#不明) などは,恐らく PRG-ROM のデータ出力許可信号線 -OE に -A15 が直結 されているため,PRG-ROM の領域にアドレスするだけで PRG-ROM からデータが出力されます.ここで,不用意に 値を書き込むと,ROM からの出力データと書き込むデータが 衝突して, ROM を破壊することがあります.回避方法 としては,ROM の領域に出力したいデータと同じ値を持つ 番地を ROM 内から探して,そこに書き込むようにする 必要があります. ROMカセットによっては,$8000以降ではなく,$5xxxや$6000 あたりをバンク切り替えに使用するものもあります. あと,MMC1 などに書き込みを行なう場合は,R/W信号だけで なく,M2信号も送る必要があります. 以上,ご参考までに. 855. 孝之介さん 2002年06月01日(土) 00時55分05秒 いやあ、これは素敵ですねぇ。 早速、作ってみました。 http://www.mars.sphere.ne.jp/emerald/towns1.jpg http://www.mars.sphere.ne.jp/emerald/towns2.jpg 急いで作ったので、配線がバサバサです(笑) でも、うまくデータが流れてこないようです、、、 作りなおす気力はありませんので、これはこのままで、ということで。 854. エミュステさん 2002年06月01日(土) 00時12分33秒 TOWNSで吸い出すページを見つけました。 http://www.geocities.co.jp/SiliconValley/2214/index.html こんなページがあったとは・・。自分もTOWNSユーザーなのでちょっと驚きです。 ただ、98年から更新されていないみたいで、残念。 それにしても、パソファミ、93年頃から存在していて、未だに続いているとは、すごすぎ。 853. 孝之介さん 2002年05月31日(金) 00時59分26秒 やはり書き込みはうまくいかないんですね、、、 ディスク自体には書き込めてるようなんですが、なぜなんでしょうね? RAMアダプターの方は比較的うまくいくので、お勧めですね。 RAMアダプター自体に、D−SUB25ピンのオスコネクターをストレート配線するだけですので、簡単ですし。 1.5mのシールドなしの安い線で配線してみましたが、別に問題は起きませんでした。 パラレルポートとの相性はあるようですが、いったん動き出すとエラーはまったく出ないので、すばらしいです! 852. Forever6502さん 2002年05月31日(金) 00時16分30秒 私もFDSLOADER作ってみました。 結論としてはディスクへの書き込みだけやはりできません。 書き込んでいる様子はあるのですが実機で起動するとエラー22 で止まります。 しかしRAMアダプタのケーブルだけでも作る価値あり。 作者の「電気的な知識が無い人もできるようなものを作ろうと 努力した」という考え方はすばらしいです。 851. ササBさん 2002年05月30日(木) 21時01分41秒 データ線の接続順が逆になっているのでは? 1〜8番線を8〜1番線に繋いでいるとか。 850. O−24さん 2002年05月30日(木) 20時42分13秒 ゆうちゃんだおさん、レスどうもです。 じつは僕も作って吸い出してみたのですが、どうもうまく吸い出せてないようでした。 それで正常なROMと自分の吸い出した物を比べてみたところ 1バイトごとに全て逆にファイルされているようなんです。 58h(01011000)であれば1Ah(00011010)ということになっているんです。 なんで正常なROMを持っているかというのはあれなのですが・・ で、他にも色々と吸い出して全バイトを書き換えてみると それらは全て正しく動いてるんです。 多分、自分が作った吸出し機のどこかが間違ってるんだろうなぁ とは思いながらも、そんな質問してしまいました。 4年半かかったんですか・・(汗 もう一度よく見直してみます。失礼しました。。 849. ゆうちゃんだおさん 2002年05月30日(木) 12時52分58秒 動きますよ・・だって4年半もかけて・・・作者に聞いてできたんですから・・同じ質問を作者にしたことがありますからね(^^; 848. O−24さん 2002年05月30日(木) 01時04分38秒 こんばんは。 お聞きしたいことがあるのですが・・ PCエンジン吸出し機、OCTPAS97とその吸出しソフトそのまま で成功された方いらっしゃいますか? 847. うっちゃんさん 2002年05月26日(日) 23時13分50秒 パソファミの回路、ちょっと変更になる可能が・・・。 といっても、一部省略ですが。。現在、安藤さんと 相談中です。 846. 844. マッキイさんへ さん 2002年05月26日(日) 20時07分52秒 >PRG CE=A15&M1のようなことが書いてあったので、 >CEさえセットすれば下位15bitだけで8000H以降にアクセスできると思うんですが・・・ 回路図を見ていないのでハッキリした事は言えませんが、おそらくその通りだと思います。 >逆に7FFF以前にアクセスする必要はないんですか 下記マッパーが実在するかどうかは判りませんが、マッパー次第だと思います。 例えば "mappers.doc" 資料内の "Mapper 6: FFE F4xxx" の場合は "$4xxx" を使っている事が記載されいます。 その他、一般的な下位アドレスの使われ方として、バックアップRAMがあります。 うろ覚えですが、 確か "6000H〜7FFFH" の範囲を使っていたと思います。 >そもそもマッパ番号・・・・ 基本的にはカセットの蓋を明けてみるまでは判りません。 ただ、大概のものは ネット上で情報が入手出来ると思いますので その情報を使えば宜しいかと・・・ 誰一人として吸い上げた事が無いカセットの場合は、蓋を空けて見るしかないと思います。 特定バンクだけを読み出して、プログラムを解析する と言う手も有りますけど・・・ *リセットベクタがアドレス最上位の辺りにありますので、この部分から解析してく手があります。 ただ、6502のに精通していると言う前提ですが。 それでもえらい大変だと思いますけど・・・ 845. マッキイさん 2002年05月26日(日) 18時54分26秒 一歩遅れたっ(笑)エミュステさん、ありがとうございます。そうですか、バンク切替部が省略されているとなると どうですか…とりあえず、見てみます。 844. マッキイさん 2002年05月26日(日) 18時51分33秒 皆さん、レスありがとうございます。 841さん>なるほど、私もmappers.docは読んだのですが、あの記号はそういう意味だったんですね。バンク切替情報を書き込んだあとで読み出すわけですか。でも私は基本が多分わかってないんだと思います。 そもそもマッパ番号やPRG,CHRデータの容量って、吸い出した後のNESファイルでは4〜7バイト目に書いてあるようですけど、吸い出す前はどこを見ればわかるんでしょう?(ゲーム名もどこにあるのやら) あと、どこかの資料には、PRG CE=A15&M1のようなことが書いてあったので、CEさえセットすれば下位15bitだけで8000H以降にアクセスできると思うんですが、逆に7FFF以前にアクセスする必要はないんですか?私は最初2000Hあたりのレジスタでバンク切替制御をするのかな、と思っていたので(^_^; うっちゃんさん>今日、最新バージョン出たんですね。とりあえず試してみます。今日はもう時間がないので、また来週にでも(笑)。でも以前このBBSで、先週のバージョンでxpで吸い出せた、と報告があったので、それでも動かなかった私のボロPCでは無理かもしれません(笑)。 いずれにしても興味は吸い出しプログラム自体に移っているので、今後も自分でプログラムに挑戦していくつもりです(笑) 843. エミュステさん 2002年05月26日(日) 18時39分27秒 841の方が詳しく説明してくれたみたいですね。 ありがとうございます。 一応、ファミコン吸い出しプログラムのDOS版はここのtmpにあります。 http://www.ptie.org/~eggman/ 元のソースはMap#1〜4に対応していたのですが、ろむを吸おうぜっが閉鎖したときに、switch_bankっていう関数の部分が省かれちゃいました。 ろむを吸おうぜっの元のソースは持っていますが、公開していいのかわからないので、控えさせていただきます・・ あと、リンクページから行ける「NESROM解析吸い出し研究所」も参考になると思います。僕も参考にしてました。 842. うっちゃんさん 2002年05月26日(日) 13時46分09秒 パソファミ、バージョンアップしました。 841. 838. マッキイさんへさん 2002年05月26日(日) 12時34分34秒 32KB以上のPRG/CHRデータはバンク切り替えで読み出します。 バンク切り替えの方法は、個々のマッパーで仕様が異なりますので、 それぞれに合わせた読み出しが必要です。 マッパーについての詳細情報は http://free.prohosting.com/~nintendo/mappers.nfo を参照ください。 ------------------ 簡単な例を一つ(Mapper 78: Irem 74HC161/32の場合) このマッパーのバンク切り替えレジスタは $8000 - $FFFF CCCCPPPP となっていますので、"P"の部分下位4Bitを切り替えて読みだせば、 32KB以上のPRGデータを読み出すことができます。 プログラム・イメージ BYTE NES_ROM[0x?????]; DWORD Addr, i=0; BYTE Bank; for(Bank=0; Bank<0x10; Bank++) { Write_NES(0x8000, Bank); // Bank Set for(Addr=0x8000; Addr<0xc000; Addr++) { NES_ROM[i++} = Read_NES(Addr); } } プログラム・イメージなのでそのままでは動かないでしょうが、 こんな感じで読み出せば、32KB以上のPRGデータを読み出すことができると思います。 (追、"15本のアドレスバス"と有りますが、おそらく最上位Bitが省かれているのでしょう。 その場合は、その状況に合わせてアドレスを解釈してください。) |