NESメモリ関連メモ

僕が最もよくわかっていないメモリ関連のことを随時追記していこうと思います。めちゃめちゃごちゃごちゃしちゃうんちゃうん?

とりあえず前提知識。
アドレスとは住所。住所にある家の大きさは普通は1Byte(8bit)。

たとえば次のような問題があるとする。
アドレスが$8000 ~ $BFFFの容量をこたえよ
まず、アドレスの$8000とか$ BFFFっていうのは16進数。だから、アドレスの個数は16進数の引き算をして、
(Windows標準の電卓の、プログラマー用電卓を使えば計算めっちゃ楽!!!)
0xBFFF-0x7999 = 0x4000 = 100 0000 0000 0000b = (2^4)*(2^10) = 16k
ある。
で、1個のアドレスが1Byteなので、16k(個) * 1(Byte/個) = 16kByte
の容量ってわけだ。

こんなの常識(苦笑)っていう人がいそうだけど、それは業界の常識であって
例えばその辺の道歩いてる人の多くは知らないと思うぞ。
なので復習。

さて、以下のだらだらした文章はメモ。見辛くてごめんね

1.マッパー0のカセットはNROMと呼ばれる。PRGROMが16kByte * 2個あるので、16kB使うか32kB使うかを選べる。
16kBしか使わない場合、その16kBを複製して無理やり32kBにするらしいね。↓
https://wiki.nesdev.com/w/index.php/NROM
…ん?CHR-ROMはないのか?というかグラフィックデータはどこにあるのか?8kB積めるみたいに書いてた気がするけどどのアドレスに入ってるんだ?そもそもPRG-ROM内にあるのか?それはわからないぞ わかりました
以下のサイトを見てください。
↓スーパーマリオブラザーズはPRG-ROMが32kBでCHR-ROMが8kBと書いています。
http://bootgod.dyndns.org:7777/profile.php?id=1486

↓一方、いっきはPRG-ROMが16kBでCHR-ROMが8kBと書いています。
http://bootgod.dyndns.org:7777/profile.php?id=3138

やっぱりデータを見るのが一番わかりやすいですな。CHR-ROMはPRG-ROMとは別に8kB存在するみたい。

2.CHR-ROMが載っていないカセットがあるらしい。その場合、CHR-RAMを使っているらしい。
NROMではキャラクターデータはCHR-ROMにある。これがさっき出た結論だった。
でも、CHR-ROMにキャラクターデータを保存しないで、PRG-ROMにキャラクターデータを保存するカセットもあるみたい。
PRG-ROMにあるキャラクターデータを随時CHR-RAMに展開して使うんだって。
↓各ゲームタイトルのマッパー一覧。これのCHRサイズが0KのカセットはCHR-ROMが載っていないと思う。
http://pasofami.game.coocan.jp/nesalltitlelst.htm

で、CHR-RAMを載せてるマッパー一覧が↓のリンクなのかなぁ、なんか不十分な気がする。
https://wiki.nesdev.com/w/index.php/Category:Mappers_with_CHR_RAM

上の2つのデータを比較してみると何かおかしいことに気づくと思う。
各ゲームタイトルのマッパー一覧でCHR-ROMが載ってないカセットのマッパーがnesdevのCHR-RAMを載せてるマッパーと一致しない。
例えば、FF1とかDQ3はマッパー1でCHR-ROMが載っていない。つまりCHR-RAMが載ってるはず。でもnesdevのCHR-RAM搭載マッパー一覧にはマッパー1はない。
そもそもマッパー1って普通にCHR-ROM載っているやつあるし。たとえばヨッシーのたまご。

こういう時はデータだよね。
↓FF1のカセットデータ
http://bootgod.dyndns.org:7777/profile.php?id=1623
↓ヨッシーのたまごのカセットデータ
http://bootgod.dyndns.org:7777/profile.php?id=2232

どっちもやっぱりマッパー1だけど、載ってるチップが全く違うね。
FF1は256KのPRG-ROM、8KのVRAM、8KのWRAM
よっしーのたまごは128KのPRG-ROM、32KのCHR-ROM
うーん、NROM以外のマッパーって載ってるチップとあんまり関係ないのかなぁ

余談だけど、こうしてみるとスーパーマリオブラザーズの32KPRG-ROM、8KCHR-ROMってすごいね。
容量めっちゃ小さい(笑)。

ちなみに、CHR-ROMとCHR-RAMの違い↓
http://wiki.nesdev.com/w/index.php/CHR_ROM_vs._CHR_RAM

コメント

タイトルとURLをコピーしました