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