kamiyaowl / rust-nes-emulator

NES Emulator written in Rust
MIT License
206 stars 12 forks source link

パレットのミラーリングを修正する #17

Closed kamiyaowl closed 5 years ago

kamiyaowl commented 5 years ago

なんとなく調べてたらこんな記載が https://qiita.com/bokuweb/items/1575337bef44ae82f4d3

0x3F00 ~ 0x3F0F はバックグラウンドパレット、0x3F10 ~ 0x3F1Fはスプライトパレットです。それぞれ0x10のサイズで4色のパレットを4枚もつことができます。 ただし、0x3F10,0x3F14,0x3F18,0x3F1Cは0x3F00,0x3F04,0x3F08,0x3F0Cのミラーとなっていることに注意です。これはエミュレータを実装するにあたりよくはまる箇所です。このミラーをちゃんと実装しないとSuper Mario Bros.の空が黒くなります。みんな嵌まるのか、NesDevにも以下の記載があります。もちろん自分も黒い空を拝みました。