• - Facebook Page

  • - GOLE1

  • - Google+

  • - My Room

  • - 周辺風景1

  • - 周辺風景2

  • - Highway1

  • - Highway2

  • - Steam

  • - My site

  • - Profile

  • - 周辺風景3

画面モードがわけ分からん・・・

画面モードが複雑すぎて全然理解できん!なんか宣言方法もサンプルコードによってまちまちだし・・・。

頑張って頑張って今理解しているっぽいこと。(※注意 以下の情報は間違っている可能性が濃厚です。信じないように。また、間違いを見つけたら指摘下さい。)

  • VRAM容量
    先日の日記に書いていたVram 656kbというのはLCD表示用として空けられているバンクアドレスの事らしい。
    0680:0000-068A:3FFF(656kb)に実メモリをマップすることで表示を行う。
  • 表示用実アドレス
    0600:0000(A-BG512k),0620:0000(B-BG128k),0640:0000(A-OBJ256k),0660:0000(B-OBJ128k)とあと少しある。
    このアドレスを0680:0000にマップして表示を行う。define定義を見る限り、0600〜は1画面目、0620〜は2画面目の表示に使用するらしい。
  • 画面モード
    画面モードはメイン用に1〜6+Frame buffer、サブ用に1〜5がある。
    1〜5に関してはメイン側のみ3Dが使用可能な他に違いはなし。
    6はBG2でlarge bitmapが使用可能?何の事か不明。
    Frame bufferはどう使われるのか不明。
  • 画面モード毎にあるBackground0〜3
    これがわからん。見た感じメイン側はセグメント(なのか!?)が0600,0602,0604,0606に分けられていてそれぞれをBG0,1,2,3にアサインしているのかなあと思うんだけど…。
    同様にサブ側はセグメント0620,0622,0624,0626になっていて、その内1つずつをvramSetMainBanks関数でLCD用アドレス(0680〜)にマップするように指定するのかな。
    でもそれだったら2枚以上のBackgroundを使用可能なんだと思うんだけどなあ…。それに使っていない個所は一体どうなってるんだ?未使用なのか?PC-9801の200lineモードみたいに余ったVramは勝手に使っても良い?

うーむ分からんことだらけだ。画面モードを切り替えるだけでもこれだけ分からんとは。しかし不明点を書き出すことで少しは整理できたっぽいな。

悩む前に試してみればいいんだろうけど、理解してからでないと取り掛かりにくくて・・・。ううむ。