# このファイルはメモリ設定用のファイルです。 # # 注意: 開発中にはこのファイルを使っても良いですが、マスターの時に必ずハードコードでやってください。 # # 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; # ↑--- ここまではフレームワークのインデックスです ---↑--------------------------------------- # ↓--- ここからはスケルトンのインデックスです ---↓------------------------------------------- # ↑--- ここまではスケルトンのインデックスです ---↑------------------------------------------- }