# GX_TrySetBankForBG

## 構文

  `#include <nitro/gx/gx_vramcnt.h>`
  `BOOL GX_TrySetBankForBG(GXVRamBG bg);`

## 引数

bg | メイン2DエンジンのBGに割り当てるVRAMバンクを指定

## 返り値

正常にVRAMバンクが割り当てられた場合にTRUEを返します。
割り当てようとするVRAMバンクが別ライブラリによってロックされている場合にはFALSEを返します。

## 説明

メイン2DエンジンのＢＧへ指定されたVRAMバンクの割り当てを試みます。指定されたVRAMバンクがDisableになっているか、LCDCに割り当てられている場合に、そのVRAMバンクをメイン2DエンジンのBGに割り当てます。
また、指定したVRAMバンクが他のライブラリによって排他ロックされている場合は割り当てに失敗します。
(注意)以下で定義されていないVRAMの組み合わせは、連続的なアドレスに割り当てることができないので、この関数で設定することができません。VRAMの組み合わせによっては、`GX_TrySetBankForBGEx()` を使えば設定できる場合がありますので、そちらを参照してください。

`GX_VRAM_BG_NONE` | BGにVRAMバンクを割り当てません。
`GX_VRAM_BG_16_F` | BGに16KBytes確保します。VRAM-Fを割り当てます。
`GX_VRAM_BG_16_G` | BGに16KBytes確保します。VRAM-Gを割り当てます。
`GX_VRAM_BG_32_FG` | BGに32KBytes確保します。VRAM-F,Gを割り当てます。
`GX_VRAM_BG_64_E` | BGに64KBytes確保します。VRAM-Eを割り当てます。
`GX_VRAM_BG_80_EF` | BGに80KBytes確保します。VRAM-E,Fを割り当てます。
`GX_VRAM_BG_96_EFG` | BGに96KBytes確保します。VRAM-E,F,Gを割り当てます。
`GX_VRAM_BG_128_A` | BGに128KBytes確保します。VRAM-Aを割り当てます。
`GX_VRAM_BG_128_B` | BGに128KBytes確保します。VRAM-Bを割り当てます。
`GX_VRAM_BG_128_C` | BGに128KBytes確保します。VRAM-Cを割り当てます。
`GX_VRAM_BG_128_D` | BGに128KBytes確保します。VRAM-Dを割り当てます。
`GX_VRAM_BG_256_AB` | BGに256KBytes確保します。VRAM-A,Bを割り当てます。
`GX_VRAM_BG_256_BC` | BGに256KBytes確保します。VRAM-B,Cを割り当てます。
`GX_VRAM_BG_256_CD` | BGに256KBytes確保します。VRAM-C,Dを割り当てます。
`GX_VRAM_BG_384_ABC` | BGに384KBytes確保します。VRAM-A,B,Cを割り当てます。
`GX_VRAM_BG_384_BCD` | BGに384KBytes確保します。VRAM-B,C,Dを割り当てます。
`GX_VRAM_BG_512_ABCD` | BGに512KBytes確保します。VRAM-A,B,C,Dを割り当てます。
`GX_VRAM_BG_80_EG` | BGに80KBytes確保します。VRAM-E,Gを割り当てます。
`GX_VRAM_BG_256_AC` | BGに256KBytes確保します。VRAM-A,Cを割り当てます。
`GX_VRAM_BG_256_AD` | BGに256KBytes確保します。VRAM-A,Dを割り当てます。
`GX_VRAM_BG_256_BD` | BGに256KBytes確保します。VRAM-B,Dを割り当てます。
`GX_VRAM_BG_384_ABD` | BGに384KBytes確保します。VRAM-A,B,Dを割り当てます。
`GX_VRAM_BG_384_ACD` | BGに384KBytes確保します。VRAM-A,C,Dを割り当てます。

以下に`GXVRamBG`型の型定義を示しておきます。

    typedef enum
    {
        GX_VRAM_BG_NONE     = 0x0000,
        GX_VRAM_BG_16_F     = GX_VRAM_F,                                     // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_F_SIZE
        GX_VRAM_BG_16_G     = GX_VRAM_G,                                     // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_G_SIZE
        GX_VRAM_BG_32_FG    = GX_VRAM_F | GX_VRAM_G,                         // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_F_SIZE + HW_VRAM_G_SIZE
        GX_VRAM_BG_64_E     = GX_VRAM_E,                                     // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_E_SIZE
        GX_VRAM_BG_80_EF    = GX_VRAM_E | GX_VRAM_F,                         // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_E_SIZE + HW_VRAM_F_SIZE
        GX_VRAM_BG_96_EFG   = GX_VRAM_E | GX_VRAM_F | GX_VRAM_G,             // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_E_SIZE + HW_VRAM_F_SIZE + HW_VRAM_G_SIZE
        GX_VRAM_BG_128_A    = GX_VRAM_A,                                     // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_A_SIZE
        GX_VRAM_BG_128_B    = GX_VRAM_B,                                     // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_B_SIZE
        GX_VRAM_BG_128_C    = GX_VRAM_C,                                     // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_C_SIZE
        GX_VRAM_BG_128_D    = GX_VRAM_D,                                     // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_D_SIZE
        GX_VRAM_BG_256_AB   = GX_VRAM_A | GX_VRAM_B,                         // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_A_SIZE + HW_VRAM_B_SIZE
        GX_VRAM_BG_256_BC   = GX_VRAM_B | GX_VRAM_C,                         // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_B_SIZE + HW_VRAM_C_SIZE
        GX_VRAM_BG_256_CD   = GX_VRAM_C | GX_VRAM_D,                         // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_C_SIZE + HW_VRAM_D_SIZE
        GX_VRAM_BG_384_ABC  = GX_VRAM_A | GX_VRAM_B | GX_VRAM_C,             // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_A_SIZE + HW_VRAM_B_SIZE + HW_VRAM_C_SIZE
        GX_VRAM_BG_384_BCD  = GX_VRAM_B | GX_VRAM_C | GX_VRAM_D,             // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_B_SIZE + HW_VRAM_C_SIZE + HW_VRAM_D_SIZE
        GX_VRAM_BG_512_ABCD = GX_VRAM_A | GX_VRAM_B | GX_VRAM_C | GX_VRAM_D, // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_A_SIZE + HW_VRAM_B_SIZE + HW_VRAM_C_SIZE + HW_VRAM_D_SIZE

        // discontinuous on LCDC memory
        GX_VRAM_BG_80_EG    = GX_VRAM_E | GX_VRAM_G,                         // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_E_SIZE + HW_VRAM_G_SIZE
        GX_VRAM_BG_256_AC   = GX_VRAM_A | GX_VRAM_C,                         // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_A_SIZE + HW_VRAM_C_SIZE
        GX_VRAM_BG_256_AD   = GX_VRAM_A | GX_VRAM_D,                         // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_A_SIZE + HW_VRAM_D_SIZE
        GX_VRAM_BG_256_BD   = GX_VRAM_B | GX_VRAM_D,                         // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_B_SIZE + HW_VRAM_D_SIZE
        GX_VRAM_BG_384_ABD  = GX_VRAM_A | GX_VRAM_B | GX_VRAM_D,             // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_A_SIZE + HW_VRAM_B_SIZE + HW_VRAM_D_SIZE
        GX_VRAM_BG_384_ACD  = GX_VRAM_A | GX_VRAM_C | GX_VRAM_D              // ARM9: HW_BG_VRAM   -->   HW_BG_VRAM + HW_VRAM_A_SIZE + HW_VRAM_C_SIZE + HW_VRAM_D_SIZE
    }
    GXVRamBG;

## 参照

GX_SetBankForBG, GX_GetBankForBG, GX_ResetBankForBG, GX_DisableBankForBG, GX_GetSizeOfBG, GX_SetBankForBGEx, GX_TrySetBankForBGEx

## 履歴

Ver. 2005/02/15 初版