# ゲームボーイカラー特有の機能 ゲームボーイカラー(GBCまたはCGB)の機能のうち、通常のカテゴリに収まらないものだけを説明します。 CGBの機能やDMGとの違いのほとんどは、グラフィックカテゴリのページで説明されています。カラーパレット、VRAMバンク、DMA転送、LCDCのbit0の意味などです。 また、[シリアル通信のページ](serial.md)では、レジスタのbitfieldにクロック速度に関するbitが追加されたことが記載されています。 ## ハードウェアをCGBモードで動作させるためには (グラフィック/通信ポート関連のレジスタも含めた)CGBのレジスタを使用する場合は、まずカートリッジヘッダのバイト`$0143`を変更してCGBの機能を使えるようにしてやる必要があります。 通常、CGBとモノクロのゲームボーイシステムの両方をサポートするゲームには`$80`の値を、CGBのみで動作するゲームには`$C0`の値を使用します。 そうしないと、CGBはモノクロの非CGB互換モードで動作します。 ## ハードウェアがCGBであることを検知するには CGBハードウェアであるかどうかは、起動直後のAレジスタを調べることで検出できます。 Aレジスタが`$11`の場合、ハードウェアがCGB(またはGBA)であることを示しており、その場合、上記で説明したようにカートリッジヘッダを正しく設定すれば、CGBモードを使用することができます。 また、CPUのBレジスタのbit0を調べて、CGB(bit0=0)とGBA(bit0=1)を分けることもできます。 この検出により、GBAディスプレイ用の「修復された」カラーパレットデータのマッチング(?)を使用することができます。