the cutting room mirror

Developer Messages

This article has a talk page!
view on tcrf.net

This is a sub-page of Phoenix Wright: Ace Attorney - Dual Destinies.

memory.ini#

'...But what does it mean?'
This game has text or audio that needs to be translated. If you are fluent with this language, please read our translation guidelines and then submit a translation!

# このファイルはメモリ設定用のファイルです。
#
# 注意: 開発中にはこのファイルを使っても良いですが、マスターの時に必ずハードコードでやってください。
#
# CTR実機は memory.ini がビルド時に nativeLiteフォルダへコピーされ、そちらを参照します。

# 
# PCエミュレーション Allocator section.
#
[Allocators: Win32_Develop] # PCでMT_DEVELOP
{
    # MtExHeapAllocator(アロケーター名, メモリタイプ, メモリサイズ, 予約ヒープ管理数[0:未使用], アロケーター属性
    GLOBAL      = MtExHeapAllocator(Global,         TYPE_PHYSICAL,    8MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);
    TEMPORARY   = MtExHeapAllocator(Temp,           TYPE_PHYSICAL,  128MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);
    RESOURCE    = MtExHeapAllocator(Resource,       TYPE_PHYSICAL,  128MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);
    SOUND_BUF   = MtExHeapAllocator(SoundBuffer,    TYPE_PHYSICAL,   32MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);    # 音声波形
    SYSTEM      = MtExHeapAllocator(System,         TYPE_PHYSICAL,   10MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);
    #UNIT       = MtExHeapAllocator(Unit,           TYPE_PHYSICAL,    2MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);
    UNIT        = MtExHeapAllocator(Unit,           TYPE_PHYSICAL, 1536KB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);
    AREA        = MtExHeapAllocator(Area,           TYPE_PHYSICAL,    1MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);
    ARRAY       = MtExHeapAllocator(Array/String,   TYPE_PHYSICAL,   16MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);
    COLLISION   = MtExHeapAllocator(Collision,      TYPE_PHYSICAL,    4MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);
    DEVELOP     = MtExHeapAllocator(Develop,        TYPE_PHYSICAL,   16MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);

    COLLADA         = RESOURCE;
    DRAW_RESOURCE   = RESOURCE;
    CUBE_MAP        = RESOURCE;
    DMPGL           = RESOURCE;
    NETWORK         = SYSTEM;
    PHYSICS         = SYSTEM;
    EFFECT          = UNIT;
    AI              = UNIT;
    GUI             = UNIT;
    STRING          = ARRAY;
    UI              = DEVELOP;

    UNDEFINED       = DEFAULT;
}

[Allocators: Win32] # PCデフォルト…
{
    # MtExHeapAllocator(アロケーター名, メモリタイプ, メモリサイズ, 予約ヒープ管理数[0:未使用], アロケーター属性
    GLOBAL      = MtExHeapAllocator(Global,         TYPE_PHYSICAL,    8MB, 0, ATTR_JOBSAFE | ATTR_THREADSAFE);
    TEMPORARY   = MtExHeapAllocator(Temp,           TYPE_PHYSICAL,  128MB, 0, ATTR_JOBSAFE | ATTR_THREADSAFE);
    RESOURCE    = MtExHeapAllocator(Resource,       TYPE_PHYSICAL,  128MB, 0, ATTR_JOBSAFE | ATTR_THREADSAFE);
    SOUND_BUF   = MtExHeapAllocator(SoundBuffer,    TYPE_PHYSICAL,   32MB, 0, ATTR_JOBSAFE | ATTR_THREADSAFE);  # 音声波形
    SYSTEM      = MtExHeapAllocator(System,         TYPE_PHYSICAL,   10MB, 0, ATTR_JOBSAFE | ATTR_THREADSAFE);
    UNIT        = MtExHeapAllocator(Unit,           TYPE_PHYSICAL,    2MB, 0, ATTR_JOBSAFE | ATTR_THREADSAFE);
    AREA        = MtExHeapAllocator(Area,           TYPE_PHYSICAL,    1MB, 0, ATTR_JOBSAFE | ATTR_THREADSAFE);
    ARRAY       = MtExHeapAllocator(Array/String,   TYPE_PHYSICAL,   16MB, 0, ATTR_JOBSAFE | ATTR_THREADSAFE);
    COLLISION   = MtExHeapAllocator(Collision,      TYPE_PHYSICAL,    4MB, 0, ATTR_JOBSAFE | ATTR_THREADSAFE);
    DEVELOP     = MtExHeapAllocator(Develop,        TYPE_PHYSICAL,   16MB, 0, ATTR_JOBSAFE | ATTR_THREADSAFE);

    DRAW_RESOURCE   = RESOURCE;
    CUBE_MAP        = RESOURCE;
    DMPGL           = RESOURCE;
    NETWORK         = SYSTEM;
    PHYSICS         = SYSTEM;
    EFFECT          = UNIT;
    AI              = UNIT;
    GUI             = UNIT;
    STRING          = ARRAY;
    UI              = DEVELOP;
}

# 
# CTR実機 Allocator section.
#
# main.cppのnninitStartUp()でTYPE_DEVICE, TYPE_HEAPのサイズが決まります。
# ROMの場合    TYPE_DEVICE = 41M, TYPE_HEAP = 64M - 41M - プログラムサイズ(8Mぐらい?) = 15M
# 開発時の場合 TYPE_DEVICE = 48M, TYPE_HEAP = 96M - 48M - プログラムサイズ(8Mぐらい?) = 40M
# サイズ指定に四則演算は使えません。 1M = 1024K

[Allocators: CTR_Develop] # CTR MT_DEVELOP
{
    # MtExHeapAllocator(アロケーター名, メモリタイプ, メモリサイズ, 予約ヒープ管理数[0:未使用], アロケーター属性
    GLOBAL          = MtExHeapAllocator(Global,         TYPE_HEAP,        2MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);
    TEMPORARY       = MtExHeapAllocator(Temp,           TYPE_DEVICE,      2MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);
    RESOURCE        = MtExHeapAllocator(Resource,       TYPE_DEVICE,     38MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);    # 描画以外のリソース
#43MB
    SYSTEM          = MtExHeapAllocator(System,         TYPE_HEAP,        5MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);
    UNIT            = MtExHeapAllocator(Unit/Area,      TYPE_HEAP,        2MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);
    ARRAY           = MtExHeapAllocator(Array/String,   TYPE_HEAP,        2MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);
    COLLISION       = MtExHeapAllocator(Collision,      TYPE_HEAP,        1MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);
#3MB
    
    # フィジカルはデバッグ以外のアロケーターを作成した後に作ること
    # 4KBアラインの必要があるスレッドのスタックやNEXで使用されます
    # 名前、メモリタイプ、サイズ、最大確保数、アロケーターオプション
    PHYSICAL        = MtPhysicalAllocator(Physical,     TYPE_HEAP,      512KB, 128, ATTR_THREADSAFE);
    
    # デバッグ用メモリ
    DEVELOP         = MtExHeapAllocator(Develop,        TYPE_DEVICE,     10MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_MEMORYFILL);
    
    AREA            = UNIT;
    COLLADA         = RESOURCE;
    DRAW_RESOURCE   = RESOURCE;
    SOUND_BUF       = RESOURCE;
    CUBE_MAP        = RESOURCE;
    DMPGL           = RESOURCE;
    NETWORK         = SYSTEM;
    PHYSICS         = SYSTEM;
    EFFECT          = UNIT;
    AI              = UNIT;
    GUI             = UNIT;
    STRING          = ARRAY;
    UI              = DEVELOP;

    UNDEFINED       = DEFAULT;
}

[Allocators: CTR] # CTR _ROM
{
    # MtExHeapAllocator(アロケーター名, メモリタイプ, メモリサイズ, 予約ヒープ管理数[0:未使用], アロケーター属性
    GLOBAL          = MtExHeapAllocator(Global,         TYPE_HEAP,        2MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE);
    TEMPORARY       = MtExHeapAllocator(Temp,           TYPE_DEVICE,      2MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE);
    RESOURCE        = MtExHeapAllocator(Resource,       TYPE_DEVICE,     38MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE);  # 描画以外のリソース

    SYSTEM          = MtExHeapAllocator(System,         TYPE_HEAP,        5MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE);
    UNIT            = MtExHeapAllocator(Unit/Area,      TYPE_HEAP,        2MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE);
    ARRAY           = MtExHeapAllocator(Array/String,   TYPE_HEAP,        2MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE);
    COLLISION       = MtExHeapAllocator(Collision,      TYPE_HEAP,        1MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE);

    # フィジカルはデバッグ以外のアロケーターを作成した後に作ること
    # 4KBアラインの必要があるスレッドのスタックやNEXで使用されます
    # 名前、メモリタイプ、サイズ、最大確保数、アロケーターオプション
    PHYSICAL        = MtPhysicalAllocator(Physical,     TYPE_HEAP,      512KB, 128, ATTR_THREADSAFE);

    # デバッグ用メモリ:デバッグ表示分あれば良い
    DEVELOP         = MtExHeapAllocator(Develop,        TYPE_DEVICE,      1MB, 0, ATTR_THREADSAFE | ATTR_JOBSAFE);

    AREA            = UNIT;
    DRAW_RESOURCE   = RESOURCE;
    SOUND_BUF       = RESOURCE;
    CUBE_MAP        = RESOURCE;
    DMPGL           = RESOURCE;
    NETWORK         = SYSTEM;
    PHYSICS         = SYSTEM;
    EFFECT          = UNIT;
    AI              = UNIT;
    GUI             = UNIT;
    STRING          = ARRAY;
    UI              = DEVELOP;
    
    SCRIPT_ANALYZE  = MtScalableAllocator(ScriptAnalyze, TYPE_HEAP, 512KB, ATTR_THREADSAFE | ATTR_JOBSAFE, ALLOC_POOL_NONE, 1);

}

# 
# CAFE実機 Allocator section.
#
# とりあえず、CTRのPCエミュレーションの場合に合わせる。
# 現在使用できるのは、TYPE_MEM2のみ。TYPE_MEM1はグラフィックスライブラリが占有するため使えない。

[Allocators: CAFE_Develop] # CAFE MT_DEVELOP
{
    GLOBAL      = MtScalableAllocator(Global,       TYPE_MEM2,    8MB, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_DEBUG | ATTR_DEV_FAIL_ASSERT | ATTR_DEV_VALIDATE_MEM, ALLOC_POOL_64KB, 1);
    TEMPORARY   = MtScalableAllocator(Temp,         TYPE_MEM2,  128MB, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_DEBUG | ATTR_DEV_FAIL_ASSERT | ATTR_DEV_VALIDATE_MEM, ALLOC_POOL_64KB, 1);
    RESOURCE    = MtScalableAllocator(Resource,     TYPE_MEM2,  512MB, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_DEBUG | ATTR_DEV_FAIL_ASSERT | ATTR_DEV_VALIDATE_MEM, ALLOC_POOL_64KB, 1);
    SOUND_BUF   = MtScalableAllocator(SoundBuffer,  TYPE_MEM2,   32MB, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_DEBUG | ATTR_DEV_FAIL_ASSERT | ATTR_DEV_VALIDATE_MEM, ALLOC_POOL_64KB, 1); # 音声波形
    SYSTEM      = MtScalableAllocator(System,       TYPE_MEM2,   96MB, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_DEBUG | ATTR_DEV_FAIL_ASSERT | ATTR_DEV_VALIDATE_MEM, ALLOC_POOL_NONE, 1);
    UNIT        = MtScalableAllocator(Unit,         TYPE_MEM2,    2MB, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_DEBUG | ATTR_DEV_FAIL_ASSERT | ATTR_DEV_VALIDATE_MEM, ALLOC_POOL_64KB, 1);
    AREA        = MtScalableAllocator(Area,         TYPE_MEM2,    1MB, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_DEBUG | ATTR_DEV_FAIL_ASSERT | ATTR_DEV_VALIDATE_MEM, ALLOC_POOL_64KB, 1);
    ARRAY       = MtScalableAllocator(Array/String, TYPE_MEM2,   16MB, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_DEBUG | ATTR_DEV_FAIL_ASSERT | ATTR_DEV_VALIDATE_MEM, ALLOC_POOL_64KB, 1);
    COLLISION   = MtScalableAllocator(Collision,    TYPE_MEM2,    4MB, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_DEBUG | ATTR_DEV_FAIL_ASSERT | ATTR_DEV_VALIDATE_MEM, ALLOC_POOL_64KB, 1);
    DEVELOP     = MtScalableAllocator(Develop,      TYPE_MEM2,   16MB, ATTR_THREADSAFE | ATTR_JOBSAFE | ATTR_DEBUG | ATTR_DEV_FAIL_ASSERT | ATTR_DEV_VALIDATE_MEM, ALLOC_POOL_4KB, 1);

    COLLADA         = RESOURCE;
    DRAW_RESOURCE   = RESOURCE;
    CUBE_MAP        = RESOURCE;
    DMPGL           = RESOURCE;
    NETWORK         = SYSTEM;
    PHYSICS         = SYSTEM;
    EFFECT          = UNIT;
    AI              = UNIT;
    GUI             = UNIT;
    STRING          = ARRAY;
    UI              = DEVELOP;

    UNDEFINED       = DEFAULT;
}

[Allocators: CAFE] # CAFE _ROM
{
    GLOBAL      = MtScalableAllocator(Global,       TYPE_MEM2,    8MB, ATTR_JOBSAFE | ATTR_THREADSAFE, ALLOC_POOL_64KB, 1);
    TEMPORARY   = MtScalableAllocator(Temp,         TYPE_MEM2,  128MB, ATTR_JOBSAFE | ATTR_THREADSAFE, ALLOC_POOL_64KB, 1);
    RESOURCE    = MtScalableAllocator(Resource,     TYPE_MEM2,  512MB, ATTR_JOBSAFE | ATTR_THREADSAFE, ALLOC_POOL_64KB, 1);
    SOUND_BUF   = MtScalableAllocator(SoundBuffer,  TYPE_MEM2,   32MB, ATTR_JOBSAFE | ATTR_THREADSAFE, ALLOC_POOL_64KB, 1); # 音声波形
    SYSTEM      = MtScalableAllocator(System,       TYPE_MEM2,   96MB, ATTR_JOBSAFE | ATTR_THREADSAFE, ALLOC_POOL_NONE, 1);
    UNIT        = MtScalableAllocator(Unit,         TYPE_MEM2,    2MB, ATTR_JOBSAFE | ATTR_THREADSAFE, ALLOC_POOL_64KB, 1);
    AREA        = MtScalableAllocator(Area,         TYPE_MEM2,    1MB, ATTR_JOBSAFE | ATTR_THREADSAFE, ALLOC_POOL_64KB, 1);
    ARRAY       = MtScalableAllocator(Array/String, TYPE_MEM2,   16MB, ATTR_JOBSAFE | ATTR_THREADSAFE, ALLOC_POOL_64KB, 1);
    COLLISION   = MtScalableAllocator(Collision,    TYPE_MEM2,    4MB, ATTR_JOBSAFE | ATTR_THREADSAFE, ALLOC_POOL_64KB, 1);
    DEVELOP     = MtScalableAllocator(Develop,      TYPE_MEM2,   16MB, ATTR_JOBSAFE | ATTR_THREADSAFE, ALLOC_POOL_4KB, 1);

    DRAW_RESOURCE   = RESOURCE;
    CUBE_MAP        = RESOURCE;
    DMPGL           = RESOURCE;
    NETWORK         = SYSTEM;
    PHYSICS         = SYSTEM;
    EFFECT          = UNIT;
    AI              = UNIT;
    GUI             = UNIT;
    STRING          = ARRAY;
    UI              = DEVELOP;
}

#
# Index Section
#

[Indices] # Default
{
    # ↓--- ここからはMTのインデックスです ---↓---------------------------------------------------

    # MTデフォルトのインデックス。
    MtUI                    = UI;
    MtArray                 = ARRAY;
    MtTree                  = ARRAY;
    MtMap                   = ARRAY;
    MtDtiArray              = ARRAY;
    MtDtiSelecter           = ARRAY;
    MtCollada               = COLLADA;
    MtCollision             = COLLISION;
    MtGeometry              = COLLISION;
    MtCollisionGjk          = COLLISION;
    MtCollisionMpr          = COLLISION;
    MtCollisionEpa          = COLLISION;
    MtCollisionUI           = UI;
    MtCollisionTree         = COLLISION;
    MtUIGraphics            = UI;
    MtCollisionUtil         = COLLISION;
    MtPropertyList =        ARRAY;

    MtAllocator             = DEFAULT;
    MtAllocationProfiler    = DEFAULT;

    MtStream                = GLOBAL;
    MtThread                = GLOBAL;
    MtFile                  = GLOBAL;
    MtHistory               = DEVELOP;

    MtPerformance =     GLOBAL;
    MtPerformanceCounter = GLOBAL;
    MtPerformanceTimer = GLOBAL;

    # MtFCurve           : フェイシャルリソースで使用するため、RESOURCEアロケータに設定
    MtFCurve                = RESOURCE;

    MtNetObject             = NETWORK;

    #   こちらで入れさせていただきました(大井 2010.11.12)
    MtMenuAddonInfo =   DEVELOP;
    MtPreProcessor =    GLOBAL;
    MtPreProcessor::Include =   GLOBAL;
    MtPropertyObject =  GLOBAL;
    MtRegistry =        GLOBAL;

    # ↑--- ここまではMTのインデックスです ---↑---------------------------------------------------

    # ↓--- ここからはフレームワークのインデックスです ---↓---------------------------------------

    cDraw                   = GLOBAL;

    # Frameworkデフォルトのインデックス。
    cResource               = RESOURCE;
    cSystem                 = SYSTEM;
    cUnit                   = UNIT;
    cArea                   = AREA;

    # sMainとsAppだけはDEFAULTです。
    sMain                   = DEFAULT;
    sApp                    = DEFAULT;
    sResource::RemoteInfo   = DEFAULT;

    nDraw                   = RESOURCE;
    nDraw::GpuAllocator     = SYSTEM;
    
    cPrimObj                = SYSTEM;
    nPrim::PrimVertex       = UNIT;

    cSwingParameters        = RESOURCE;

    cSwing                  = UNIT;

    cInstancingDynamic      = UNIT;
    cInstancingFromNulls    = UNIT;
    cInstancingFromMatrices = UNIT;
    cSCGPlusInstancing      = UNIT;

    cMMapDrawer             = UI;
    cGrassPlacer            = UNIT;

    nGraphComponent::Base   = RESOURCE;
    nPhysics                = PHYSICS;

    cShadowPriorityState    = SYSTEM;

    # cBVHCollision       :リソース組み込みを前提とするため、RESOURCEアロケータに設定
    # cGridCollision      :リソース組み込みを前提とするため、RESOURCEアロケータに設定
    # cDynamicBVHCollison :リアルタイム処理に使用することを前提とするクラスであるため、COLLISIONアロケータに設定
    # nCollision          :リアルタイム処理に使用することを前提とするネームスペースであるため、COLLISIONアロケータに設定
    # nCollisionUtil      :リアルタイム処理に使用することを前提とするネームスペースであるため、COLLISIONアロケータに設定
    sCollision              = SYSTEM;
    cBVHCollision           = RESOURCE;
    cGridCollision          = RESOURCE;
    cDynamicBVHCollision    = COLLISION;
    nCollision              = COLLISION;
    nCollisionUtil          = COLLISION;
    nCollisionUI            = UI;

    cRemoteProcedure        = NETWORK;
    cRemoteCall             = NETWORK;
    nNetwork                = NETWORK;
    cRemoteStatistics       = UI;

    nAI                     = AI;

    nAITool                 = UI;
    cReleaseNote                = UI;
    cAIObject               = AI;
    cAIResource             = RESOURCE;

    cPropertySearch         =   DEVELOP;

    nLua                    = UNIT;
    cLua                    = UNIT;

    cResourceData           = RESOURCE;
    cWind                   = SYSTEM;

    cParticleManager        = EFFECT;
    uBaseEffect             = EFFECT;
    uEffect2D               = EFFECT;
    uSimpleEffect           = EFFECT;
    uEffectEmitter          = EFFECT;
    uMultiFilter            = EFFECT;

    uSynchroColorCorrectFilter  = EFFECT;
    uSynchroPointLight          = EFFECT;
    uSynchroSpotLight           = EFFECT;
    uSynchroLightShaft          = EFFECT;
    uSynchroModel               = EFFECT;
    uSynchroGrassWindPoint      = EFFECT;
    uSynchroGrassWindDirection  = EFFECT;
    uSynchroGrassWindLine       = EFFECT;
    uSynchroAdhesion            = EFFECT;

    sEffect::ResourceSearch = SYSTEM;
    sEffect::Profiler::List = UI;

    rEffectAnimXml::SeqPatEdit      = RESOURCE;
    rEffectAnimXml::SeqIndexEdit    = RESOURCE;

    EffectStripParts        = RESOURCE;
    rNullsXml::NullObj      = RESOURCE;

    tResourceSearch::Condition      = UI;
    tResourceSearch::ResourceInfo   = UI;
    tResourceSearch::Node           = UI;

    sApp::Item  = SYSTEM;
    
    nPad        = SYSTEM;
    nApplet     = SYSTEM;
    nCec        = SYSTEM;
    
    #   GUI
    nGUI =                  GUI;
    uGUI =                  GUI;
    cGUIObject =            GUI;
    cGUIInstance =          GUI;
    cGUIVariable =          GUI;
    cGUIMessageAnalyzer =   GUI;
    cGUIFontFilter =        GUI;
    #   開発用
    nGUI::Track =           DEVELOP;
    rGUIIconInfoXml::IconInfo = DEVELOP;
    tGUIParamProperty =     DEVELOP;
    tGUIParamArrayProperty = DEVELOP;
    nGUITool::AnimationOptimizer::LogData = DEVELOP;
    nGUITool::UIManipulator = DEVELOP;
    cGUIMessageError = DEVELOP;
    cGUIMessageError::Error = DEVELOP;
    cGUIMessageError::PageError = DEVELOP;

    nZone           = RESOURCE;
    cZoneListener       = UNIT;
    cZoneContents       = UNIT;
    cZoneLayout     = SYSTEM;
    cZoneDebugDraw      = UI;
    cMessageCapability  = UI;
    nZoneUI         = UI;

    sToolBase       = DEVELOP;
    
    cMetaSetPropertyData    = RESOURCE;

    cGadgetFolder       = DEVELOP;
    cGadget         = DEVELOP;

    cKeyword    = GLOBAL;
    cSoundLayoutInfo = RESOURCE;
    uSoundZoneBase::cGroupManager = UNIT;

    nHID = RESOURCE;
    nYuv = RESOURCE;
    nNgc = SYSTEM;
    nDownloadPlay = SYSTEM;

    # VRAMへのDMA転送用 一時バッファ
    nDraw::DMABuffer = RESOURCE;

    cBlendState = GLOBAL;
    
    nProfile = SYSTEM;

    #   内包しているクラスによって決定してます
    cStateMachineBase::StateBase =  NETWORK;
    cUUID =             RESOURCE;

    # ↑--- ここまではフレームワークのインデックスです ---↑---------------------------------------

    # ↓--- ここからはスケルトンのインデックスです ---↓-------------------------------------------

    # ↑--- ここまではスケルトンのインデックスです ---↑-------------------------------------------
}