ファミコンのプログラム4
>>449のサイトから色々有用な情報を得られたけど、全体的にだいぶ捻くれた書き方してんな
なんかWeb上のファミコン関係の技術者って心に闇抱えてる人が多いような気がするわ
Offgaoとか、某FPGA実装の人とか、安藤信明とか 任天堂はまだまだ著作権を放棄するつもりはないみたいだね ここも書き込み減ったねぇ
アセンブリ言語自体下火だから仕方がないけど >>453
今、ファミコンエミュの中で最も実機に近い一つと言われているMesenでもテストしてくれ 「新4人打ちマージャン 役満天国」はMMC5 PCMを使っているという情報がある ファミコンディスクシステム掲示板 FDS BOARD ディスクシステムを偲ぶ
http://park19.wakwak.com/~fantasy/cgi-bin/fdsboard/read.cgi?mode=all&list=tree&no=20
ディスクBASIC: まさやんのゲームいぢり
http://gameidiri.cocolog-nifty.com/blog/2007/02/basic_f283.html
Converting Super Mario Bros. to FME-7/Sunsoft 5B?
http://forums.nesdev.com/viewtopic.php?f=10&t=11000&start=15
Talk:Sunsoft FME-7
http://wiki.nesdev.com/w/index.php/Talk:Sunsoft_FME-7 ディスクシステムでDPCMって鳴らせるか調べてみたら、
$C000〜$DFF9にDCPMを配置して鳴らすことはできそうだな ここのHello Worldプログラム
http://hp.vector.co.jp/authors/VA042397/nes/sample.html
を単純にFDSに移植してみたけど、(バイナリ的には4バイトのパッチ)
でディスクシステムで動いたけどなぜか黒画面になる部分が$マーク
ばかりになってしまった。
https://i.imgur.com/LeKMwOO.jpg ディスクシステム(任天堂)のBIOSとシャープ ツインファミコンのBIOSって若干違うんだな。
Nintendoって表示されるかFamicomって表示されるかの違いだけど。
ディスクシステム(任天堂)のBIOSは40KBのNESイメージのものもあるけど、
シャープ ツインファミコン版を作ろうと思ったら、ディスクシステム(任天堂)の
ROMをシャープ ツインファミコンのものに置き換えてから吸出し機で吸わないと駄目かな? >>465
そこまでしなくてもDISKSYS.ROMから構成することはできます。
で無いなら作ってしまえということで、
Sharp Twin Famicom BIOS (J).nesをSharp Twin Famicom BIOS (J).nesに
するIPSファイル作ってみました。
https://www.axfc.net/u/3874041.zip バッ活パート11掲載「ROMゲームをディスクシステムで実行」ってのがあるようだ、
RAMアダプタを改造すれば、ROMのゲームをディスクに入れて遊べるようだな。
これはNROM(マッパー0)かCNROM(マッパー3)のゲームが対応しているようだ。
海賊晩でFDSのゲームをROMに入れたものがあるけど。これは$6000から
プログラムを配置できるマッパーを使用しちえる。どちらも基本的にアドレスを変換せずに
起動できる点がポイントだろう。普通にNES→FDSやFDS→NESをやろうと
思うと大抵アドレス変換が必要で大幅なプログラム変更の為気の遠くなるような
作業が必要だ。 255 :名無しさん@お腹いっぱい。:2013/12/29(日) 07:21:45.79 ID:qrYjRNG4
3. FDSラブ
2013年09月16日 22:35
いや、待てよ?
「その後、ハードやアダプターなど、とっかえひっかえしてみたが、まったく改善されず。」
ハード、つまりファミコン本体は変えてみた(≒ファミコン本体のSRAMを交換した)けど改善されず、アダプター、つまりRAMアダプターも変えてみたけどそれもだめ、ACアダプターも"とっかえひっかえ"しただろうけど、無駄だった…。
うーん、ここは一発、昔の記事で紹介された東京都板橋区の「ファミコンショップクラブハウス」に行ってみたらいかがでしょうか。
ttp://ogclub.u.cnet-ta.ne.jp/
せっかくなのでついでにちょっと、僕の熱い想いを語らせていただきます。
かつてオロチさんが「2012年いまだにファミコンを修理してくれるゲームショップが存在した!」で紹介してからというもの、このお店に月イチで行って、ゲームを買いつつ、優しく面白い店長とよく話をします。
オロチさんが紹介していなければ、僕はもしかしたらここを知らないまま、彼と一生会うこともなく、孤独…というのは大げさかもしれませんが、それでも寂しい人生だったかもしれません。
僕ね、まだ酒は飲めません。
一部ではゆとりだガキだ何だと叩かれます。
けど僕は小学生の時からファミコンが物凄い好きで、小中学校では一時期いじめにも遭って、孤独感に押し潰されて自殺も考えました。
けどやっぱりね、類は友を呼ぶと言うじゃないですか。
オロチさんのこのサイトを見るようになってからというもの、店長や"マサさん"とかいろんな人に出会い、人生は豊かになりました。
マサさん、僕はここにいますよ。
オロチさん、今までずっと休まず記事を書き続け、あの時あの店を紹介してくれて、本当にありがとうございます。
これからも更新がんばってください! 256 :名無しさん@お腹いっぱい。:2013/12/29(日) 19:02:14.68 ID:SqfJyfl2
どうも、ファミコンディスクシステムを愛するFDSラブです。
最初は千歳烏山オルパでの友達に合わせて、面白いファミコンネタを交えつつオルパの素晴らしさを発信していきたかった。
僕はそう考えて、俗に言うリア充さんという人みたいなノリでTwitterを始めたわけなのですが、昨日は大変でした。 FDSラブ@世田谷最強ファミコンコレクタ (@FDS_Conversion)' 簡単にお金が稼げる方法興味ある人だけ見てください。
グーグル検索⇒『来島のモノノリウエ』
9WHJ0HLWTF ファミコンはBGとスプライトの優先順位の指定をスプライト側で設定しますが
これだとスプライトの下に表示したいBGキャラと
スプライトの上に表示したいBGキャラが隣接している場合で
スプライトがその両方にまたがっている場合に
スプライトの上に表示したいキャラに差し掛かった時点でスプライトの
優先表示を変えてしまうと、スプライトの下に表示したいBGキャラの部分でも
BGキャラが上に表示されてしまうと思いますが、どういう処理をすればいいですか?
色々とVDPの仕様を調べると、セガマークIIIなどは、優先順位のフラグをBG側が
持っているので、何も考えなくても思った通りの優先順位で表示されそうですが
ファミコンのようにスプライト側で優先順位を持っていると、優先順位が逆のBGに
スプライトがまたがっている場合、どうしたらいいか分かりません。 パターン1
表示したいスプライトより優先度が高いスプライトをBGの裏においてマスクする
例)スーパーマリオの土管に入るときなど
パターン2
BGの後ろにしたいところに優先度の高いスプライトを8枚置き、8枚を越える
スプライトが出せない事を利用して目的のスプライトを消す
例)ゼルダのダンジョンなど
パターン3
表示したいスプライトのキャラそのものをBGデータに重なっているところだけ透過
したキャラに書き換える
例)ソルスティス/ナイトロアーなど
好きなの選んで >>479
ありがとうございます。そういった感じの解決法なんですね。
でも、なんだかスプライト側が優先順位のフラグを持っているのは
面倒な気もするのですが、スーファミでも変わらず同じ仕様のようですし
何かメリットがあるのですか?
BG側が優先順位のフラグを持っていれば、BGキャラを表示する時点で
フラグを設定する以外の事はしなくても済みますので、この方が便利で
合理的に感じます。
ところがスプライト側がフラグを持っている場合、スプライトキャラが移動するたびに
BGキャラとの重なりチェックをしなければならず、そのBGキャラがスプライトの上に
表示されるべきBGキャラならばフラグを設定し、そうでなければまたフラグを戻すといった
処理がキャラを移動するたびに発生します。しかも、上記のように
優先順位が逆のBGキャラをまたいでいる場合は、様々な工夫が必要です。
それにもかかわらず、スーファミでもこの仕様を継承したということは
この方法にもメリットがあるはずですが、さっぱり思いつきません。 BGにフラグをもたせるメモリの空きなどないしハードウェアも複雑になる
描写位置に合わせて処理が必要になるスプライト側に機能を集約させることで単純化し
工業製品として価格が抑えられるなら十分なメリットになるだろ
スーファミは当初ファミコンのソフトがそのまま動かせるように
互換性を考慮した設計だったが途中で諦めたからその名残 >>480
出来る事出来ない事がそれぞれで違って一長一短ある
BG2枚以上ならスプライト側のほうが何かと便利かな >>481
ファミコンはVRAMが2KBしかないので
よく考えたらそうですね、パレットですら4キャラで1つに
節約してるくらいですし。
何かソフトウェア技術的なメリットがあるのかと思って
ここ3か月くらいずっと考えてたんですけど、思いつかなかったもので
ここで聞いてみました。
>>482
スプライト側がフラグを持った方がいい場合もあるのですか?
自分はまったく思いつかないのですが・・・。
スプライト側がフラグを持つと、プログラマ側が色々な処理を
しなければならず面倒ですけど、BG側がフラグを持ってくれると
プログラマは何もしなくてよくてメリットしかないように思います。 >>483
BGにフラグの場合はスプライトより上にしたBGよりスプライトを
上にする事が不可能になる
今更そんなメリットデメリットを議論したところで変わらないから
工夫して使うしかないよ ようやく>>478氏の内容が理解できた。
なんで優先度をそんなコロコロ変えるのか全く理解できなかったが、マリオの土管の事か。
ああいうのは、本来別の最前面スプライトやBG面を2毎持たせて前面のBG面?としてやるものだと思いますが。
BG=背景なんだから、それを基準(固定して)にするのが普通の考えだと思う。 >>484
おお、なるほど。そこは思いつきませんでした。
確かに今更仕様について考えても意味ないんですけど
どうも気になってしまって。
>>485
この仕様を考えるきっかけになったのが、立体交差の橋を
くぐるという処理なんですけど、橋の下に入るときに、スプライトは
1ドット単位で動くので、どのタイミングで優先順位を切り替えたら
いいかと悩んだのが原因でして。
橋に1ドットでもくぐった瞬間に切り替えると、その手前の地面のBGも
上になってしまうのでキャラが半分消えておかしくなるし、完全に8キャラ分橋の下に
移動してから切り替えると、その8ドットが動く間はキャラが橋の上に表示されて
しまうので。 そう言えばイースの立体交差はどうだったろうと思って
調べてみたら、ファミコン版はそもそも立体交差が省略されて
無くなっていたという。
RPGで森に入ると下半身が隠れるというのも同じような処理ですけど
ハイドライドではよく見てみると、森から出るときとか地面のBGがキャラの上になってしまってますね。
速いからよく分からないけど、ちゃんと処理してると思ったら思い出補正だったようで。
ファイナルファンタジーだとキャラがきれいに矩形に消えてるので
BGを上にしてるんじゃなくて、単にスプライト消してるだっけっぽいですね。 結局の所、1ドット単位で動くキャラに対して上に何かを
表示したい場合、1キャラ分動き終わった場合は別として
移動中はスプライトで上書きしかないのですね。
さっき動画で見たんですけど、カラテカでキャラが柱の向こう側を
通る時も、柱にスプライトのマスクが出現する処理でした。
だとすると、このBGがスプライトの上に表示できるという仕様は
移動するキャラに対して使用するような想定では作られていないということか。
根本的にそこの理解が足りなかった。 あ、念のために書いておくと、立体交差の橋というのは
下が透ける部分(透明色)があって、そこからはスプライトキャラが見えます。
完全にキャラが見えなくなってしまうのであれば、それこそスプライトのマスクで
済むので。 なんか連続で書いて申し訳ないですけど、>>484さんが
教えてくれた利点は結構大きいな。
これができないとスーマリ3とかのBGの裏側に回った時に
自キャラだけ裏側でってのが出来なくなる。 BGパレットの0番が背景色だから
スプライトのプライオリティビットを立てると
この部分が透過扱いになるのよ >>491
その仕様はもちろん理解しています。
ファミコンはBG・スプライトにかかわらず
パレットの0番色は強制透過色ですよね。 説明が下手過ぎて何か勘違いさせてしまったかもしれません。
透過色の原理は理解してます。
まあ簡単に書くと、表示優先順位が逆のBGキャラをスプライトがまたいでいる時
つまり移動中は優先順位をどう指定しても表示がおかしくなるので
BGと同じスプライトを自キャラスプライトに上書きするしかなさそうだな
面倒だなこれ、BGがフラグ持ってくれてたらこの処理いらないのになぁ
なんでスプライト側がフラグ持ってるんだろ?これ何か利点あるの?ってのが
出発点でした。 ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ 453です。久しぶりに来ました。
>>459
Mesenの存在を知った時、東方老桜夢を試してみたのですが
プログラムに仕込んでいる実機判定でエミュと判断されたので
Nestopiaに負けてんじゃんで止まっています。
実機判定にパスすれば普通に動作するようです。
東方老桜夢の公開サイトはinfoweb閉鎖に伴いさくらサーバに移動しています。
現在、ver0.51を公開しています。 最近開発を始めようと思ってファミコンの勉強を始めたものです。優しい方がいたら是非教えて欲しいことがあります
CPUアドレス空間の$2006ってR/WしたいPPUのアドレス空間のアドレスを上位ビットと下位ビットの二回に分けて書き込むと思うのですが、この2バイトのアドレスの情報ってPPU内部のどこのレジスタに保存されているのでしょうか。
例えば同じように2回書き込む$2005では、スプライトのy座標とx座標はそれぞれPPUのOAMのbyte1とbyte2に保存されていると思うのですが、、 すみません、多分自己解決しました
NesdevのPPU Scrollingのページにtレジスタとかvレジスタとか色々書いてあったのに気づきました tレジスタやvレジスタは、動作を説明するために書いてあって、実際にPPU内部に存在するかは
はっきりしていないと思います。ただ、この動きをするためには、このようなレジスタが必要だろうなと
推測されるので、説明にあるレジスタに該当する回路はあると思います。
あと、$2005 に書き込むにはBGのスクロール位置なので、OAMは関係しません。 釣りにしては有能すぎる。
ファミコンの回路図見るのが一番。
もっと言えば
PPU内部の回路解析しちゃった外人もいるはず。 回路図見たけど2度書きレジスタについては全然見えてこないな。
tやvという概念さえ知ってれば無問題。 PPU scrolling - Nesdev wiki
PPU rendering - Nesdev wiki
これはめちゃくちゃ重要 /i/|ii!//|!/!i/´i/ .|i |/ノ i\i!゙、:iヽ|:::| ヽ 'i ! ヾi |'!ヽ::::||::::::/:::::::::::::::::::::ヽ
i i 川i!ハ/" _! | │ 川 ヾ:ii ゙'∨ | ゙ヾiヽヽ;||:::::i':::::::::::::::::::::::::
ノ ノ/リ,,,,,,二三テ=''" ヽノ ル |ノノヽヾ ノ 、,,,ノ,、 iヽ:::||:::::i'::::::::::::::::::::::::::::
/  ̄ ´~~゙'''' ゙''‐- ..,, ,, ‐' `゙ヾミッ、,, ヽ::|::::/::::::::::::::::::::::::::::
,,イ| i' i" `'‐=' `'|/i!:::::i::::::::::::::::::::::::
i | :::::::ヽ::::ヽ::::::ヾ:: ゙、 l 〃::::: i//::::ハ::::::::::::::::::i:::
i i \\\\\ヽ ) ヽ ′′′ / /:::::/:::::::::::::::::::|::::
! | i ,,ィノ < :::: : /:::::/:::::::::::::::::::/::::
i! i i! /i/ ,r''''‐y'''.;、 \ /:::::/:::::/::::::::::::/:::::
゙i! | i /⌒' 、 Y:::::::::''::;;;;'.;.Y'⌒゙i /::::::/::::::/::::::::::::/::::/i
i i ゙! ん、,,__ヽノ:::::::::::::::::::;;;;;{,__,,,r'' /:::::::/::::::/::::::::::::/:::://
゙、ii! ゙| i ノ ゝ;;;:::::::::::::::::::;ノ 。 `i //:::::/:::::/::::::::::::/::::::/:::
ヾ!トl ゙iU i 。l '゛.. ‐ー:::::i | //::::::/::::::/::::::/:::/:::::i!::::::
iiミ! ハ i l ,,,,::: :::;;;;;...{ ° ゙、 //::::://::::/::::::/:::::/::::i::::ii::
i!ヾ!i ゙、! , ' |::: ::::ヽ ..} |゙ヽ......,.,.,.,,,///://::://::::/::::://::::i::::リ::
!ヽヾi i゙、 ___,,,/ }:: : ;;;::: ::::::::} レWノ'レi/、//::/:://:/:::/::/:::ハ:i |:: なんか同人シューティングカセットが出たみたいだが、
末期のマシン語で作られたベーマガ投稿作品みたいだ キラキラスターナイトのプログラム使って作ってるらしいなそれ
おにぎり食べるやつとかアドベンチャー的な作品とか
ファミコン界隈が「自分で新作を作って売る」方向になってきてるな メモ
BRKを使う理由
Making good use of BRK opcodes
//nesdev.com/NES%20hardware%20development%20guide.txt >>515
なんだこりゃ色多すぎ嘘くせー
と疑ってしばらく観察してたけど
特に色数の制約超えてなさそうだね
当初は絵のパターンが足りなくならないように減らすために
ブロックまで含めた1枚絵を描いているのかと思ったけど違うかな
パターンの繰り返しが単調にならないように上手な絵を描いているね
スーファミのように今にも背景が多重スクロールしそうな色 >>515
回転時のアニメーションがカクカクすぎる。斜め45度のパターンも必要かと ゲームラボのSM調教師瞳の記事に興味深い記述があった
音源チップをデュアルCPUのように使って音楽を流しながらグラフィックを解凍させたんだと
そんなことできるの? aitendo に40ピンのカードエッジコネクタの基板が売ってるのに60ピンのが無かったから60ピンの発売希望お願いしてみたらあっさり快諾してくれた。
来月頭くらいには入荷しそうだって。
ファミカセの制作に使えるか注目しててね。 RP2A03 の命令セット確認しなおしてみたんだけど、
オリジナルならゼロページでクロック数短縮できるところをわざわざ潰して NOP とかにしてる?
なんで? 「創世記・ファーミー」でファミコンのプログラムを製作できます
と宣伝にあったけど、実際に作った人がいたのかと。 レスどうもです。バックアップはできたと思うけど他スレからの抜粋です。
PC98等に接続して独自にソフト開発ができるようにする予定もあったんだけど
実現せずにフェードアウトしたとか。とは言え開発した方がいるのかと質問しました。
因みに最近ディスクシステムの内容をWindows間で8秒(←QDの仕様)で転送する
ハード・ソフトを製作しましたがFM-7も使います。回路図と6809コードは公開予定です。
Windows側に持って来れば「cc65」が使えるので現在下調べしてます。ただFM-7の他に
部品代は6000円程かかります。とは言え「創世記・ファミー」よりは安いです。
喜んで「FM-7」をオクで入手したけど騙しだったと言うことにはならないようにします。
尚、「FM-77」の方が拡張コネクタ数の関係で良いです。「77AV」ではNGかも知れません。 ×)「創世記・ファミー」
○)「創世機・ファミー」 ROMカートリッジをディスクシステムにバックアップしたのは覚えてる
ファミー本体の後部にRS-232Cっぽいコネクタはあったけど、ファミコン+ファミーだけではBOOTできないっぽいから、
パソコンと繋いで開発するにはディスクシステム側に起動ディスクが必要な気がするよ 「創世機・ファミー」を使う際にディスクシステム側に起動ディスクが必要が否かは判りません。
下の画像では「創世機・ファミー」側に何か「CPU」があれば起動ディスクは必要しない感じです。
ttps://bakutendo.net/blog-entry-415.html
因みに「ディスクシステム解析ツール」と仮にしましたが(1番目の画像は、これでバックアップ)
ttps://imgur.com/a/qCPoTqz
3番目の画像の「RAMアダプター接続基板」はFM-7の6809を使い「QD」を操作します。
また4番目の画像の「新基板202106」はFM-7を使い、Windows間でデータ転送します。
6502のコードは全く使わなくても「QD」は操作できます。実際にMZ-1500はZ80です。 >>529
>ファミー本体の後部にRS-232Cっぽいコネクタ
RS-232Cです。PC-98(PC-88)のRS-232Cと接続してデータ転送か
コマンドを送出したと思います。 >>532
URLがバグった
Stunt Kidsとかいうゲームです quartz.nesという音色エディタをお持ちの方いませんか?
うpしてくださったら御礼します(3行) 2行で応えます。もしかして「行」は「桁(けた)」の間違いではと。
それにしても999円では安過ぎ、持ってないけど。更に著作権侵害ではと。 新作ファミコン版『パックマンCE』、Switch『ナムコットコレクション』10本収集特典に
https://japanese.engadget.com/namcot-103008491.html?guccounter=1&guce_referrer=aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS8&guce_referrer_sig=AQAAADf2ioFYZStJiDe7plAVCKT8tq2ySE4YuM8j5HYtKMjuZuBNZHF-0TXdnYm5zdMm68EpGG29r4BbTmw2IUdNbcGd2neW6JcGzGCZmSDs_sVYENGKH29ECX2CPWZoRdMIxlmJ95ojdyR6EcJe0nuvaEdmjlrji3YfdDZn1lDC8KWZ
6月18日発売のニンテンドースイッチ『ナムコット コレクション』には、10本のゲームを揃えた収集特典として、ファミコン版『PAC-MAN Championship Edition』(パックマンCE)が用意されていることが分かりました。
『パックマンCE』は2007年にXbox 360で発売されたのち、現在も多機種でシリーズが続く新生パックマン。
収集特典の新作パックマンCEは、ナムコットブランドによるナムコのファミコンゲームが
『ファミスタ’94』で終了してから10数年後のゲームを、さらに13年経った2020年に、
ファミコンで動く新作として先祖返り移植した作品です。通し番号は『ファミスタ’94』の「83」
に続く「84」。
パックマンCE ファミコン版ってどっかで誰かが作ってたの見たことあるけど、
それにそっくりだった。その動画は現在非公開になったいるようだ。
パックマンCE
http://www.nicovideo.jp/watch/sm3844058
↑
これが公式採用されたのかな? >>536
特典発表のちょい前に、動画が非公開になったので、そういうことでしょうね。
作ったのはcoke774さんで、近年は、スーパーカセットビジョンで色々ソフトを作られています。 「ゲームで金儲けする時代止められない」CCPゲームズ代表インタビュー
「CCPゲームズ」のヒルマ・ベーガー代表は14日、オンラインインタビューで最近、
話題に浮上した「プレイトゥオン(Play to Earn 遊んで儲けるゲーム)」について
「世界のゲーム業界には、すでにゲームアイテムを取り引きする2次市場が存在する」とし
「儲かるゲームは以前にもあったし、これからも止められない流れになる」と診断した。
CCPゲームズは、世界的な人気ゲーム「イブオンライン(Eve Online)」を開発・運営する。
イブオンラインは、世界で4000万人以上が楽しんでいる。
CCPゲームズは最近、NFT(代替不可能トークン)コンテンツを披露し、注目を集めている。
「アライアンス・トーナメント」というゲーム内の大会商品でNFTコンテンツを配った。 ハード側のイメージができないので質問させてください。
mapper 206のCHRバンク切り替えは400byte毎に小分けで切り替えられますが、
市販ゲームのプログラムを覗くと、例えばAのシーンでは$0000-$1FFFまで毎フレーム同じバンクを指定し続けています。
ゲームとして必要なタイミングでのみバンクを切り替えればいいのに毎フレーム同じバンクを指定して負荷ってかからないのでしょうか?
エミュとかでPPUのメモリを覗くとCHA-ROMのデータが$0000-$1FFFに展開されていますが、
これはCPUに命令されたタイミングで1byteずつコピーしているのでしょうか?
メモリに展開?されたなら、CHA-ROMを引っこ抜いてもバンク切り替えが起きない限りグラフィックはバグらなさそうなイメージがあります。
ここら辺が全くイメージできません。
拙い文章で申し訳ございませんがよろしくお願いします。 物は試しとゲーム動作中にCHAROMを引っこ抜いたところグラフィックがバグりました。
エミュではPPUメモリ$0000-$1FFFにコピーされているように見えるけど、
実際のハードでは、メモリは無くPPUとCHAROMのアドレス線が接続されているだけなんでしょうか?
バンク切り替えというのもアドレス線の接続先をコントロールするICに信号を送っているだけなので
仮に毎フレーム同じバンク番号を指定し続けても負荷はかからないと…。 連投すみません。
ROM領域と言われるチートコードでは干渉不可な場所と
RAM領域と言われる干渉可な場所があることを思い出しました。
PPUの0000から1FFFはROM領域という訳で、多分それはアドレス線で接続されており。
常にCHA ROMと同期しているイメージな気がしました。
自己解決してしまったと思います。お騒がせしました。 >>539-541
少なくとも >>539 の時点ではバンク切り替えがどういうものか理解できてないように見える
それが >>541 で自己レスするまでに調べて理解できたってことなんだろうか? >>542
お騒がせします。あまり理解は出来て無いと思います。
エミュのメモリビューワでPPUメモリを覗くと、$0000-$1FFFまでずらっと展開されてるので
あたかもCHAROMのデータをPPUがコピーして記憶しているかのように錯覚してました。(エミュ上なので書き換えられるし)
実際のハードでは、PPUが記憶してるとかではなくアドレス線A0〜A12線($0000-$1FFF)がCHAROMに直結してるだけというイメージと理解しました。
悪魔城ドラキュラはPRGからグラフィックを「RAM」にデータをコピーしているというワードを見て気がつきました。
プロアクションリプレイを使ってメモリとかを書き換えて我流で学んで来たため知識がぐちゃぐちゃです。
ROMとRAMの意味から学び直してきます。 CHRROMに直結で良いよ
(CHAではなくCHR)
ROMではなくRAMになってるのもあるけど >>543
こういう風に繋がっているけど、どのように動作するかイメージわく?
PPUのアドレス線 PA0 〜PA9 → CHR-ROMのアドレス線 A0〜A9 に接続
PPUのアドレス線 PA10〜PA12 → Mapperのチップに接続(バンクレジスタの選択)
PPUのアドレス線 PA13 → CHR-ROMのCEに接続(PPUアドレス $0000-$1fffの時にCHR-ROMの出力が有効になる)
Mapperのチップのバンクレジスタの出力 6bit → CHR-ROMのアドレス線 A10〜A15 に接続
PPUのデータ線 PD0〜PD7 → CHR-ROMのデータ線 D0〜D7 に接続 >>546
プロアクションリプレイでソフトをバイナリでいじって改造しようってレベルの奴に
ハードウエアの配線から説明しようってのが無理すぎる気がするが
知りたいこともそんなことじゃないだろうし >>546
今気づきました。ありがとうございます。
あの後、勉強&ファミコンの分かりやすい回路図を見つけて理解できました。
バンク切り替えは、PRG命令でCPUのデータバスとアドレスバスからhi/loが出る→ロジックICが受ける→ロジックICがEPROMのA15等をhiに固定し見たいデータに切り替える。
ファミコンは無いけどROMが複数個で構成されてるタイプであればOEをうまく切り替えて見たいデータに切り替える。 今年はファミコン発売40周年だぞ
7月は何かイベントしないとね PALTEST.NES( http://nesdev.com/paltest.zip)をディスクシステム用fdsに変換しました。
プログラムはc000から少しだけなのでそのままコピペして、nmi等アドレスをdffa~に入れるだけで動くはずです。
実際動かすと、数秒間正常動作するのですが、約5秒後フリーズしてしまいます。
どうしてフリーズしてしまうのか全く分かりません。
原因と対策方法が分かる方ご教示お願いします。 >>553
いろいろ条件不明
その書き方だとダンプ部分をずらしただけ?じゃ全然無理だね
*.nes用のソースコードをそのままコピペで.orgずらして
*.nesファイル作ってくれる簡易アセンブラでアセンブルしたとしても
*.fdsじゃ到底動かないよ
*.fds形式内部のファイル群と開始アドレスなどとブートの仕組み理解しないとね
https://www.nesdev.org/wiki/Family_Computer_Disk_System
block01 *NINTEND○-HVC*等が記載されたディスク情報
block02 ファイル数
block03 ファイルヘッダ(ブートに必要なKY○DAKU-ネームテーブルファイル、CHR、PRG、PRGのセーブデータ)
block04 block03の直後のファイルの実データ
CC65(CA65アセンブラ)用のサンプルコード
Github repository: Simple FDS example for ca65
裏技か
Forum post: Skipping the FDS license screen >>554
レスありがとう
よく読んでください、数秒間正常動作すると書きました。fdsファイルと移植に問題はありません。
で、自己解決しました。