changeset 321:f64d75473f95

merge 317
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 10 Jun 2009 15:23:25 +0900
parents 776c125af0b2
children 4be5ae77e02c
files Document/Cerium_2009.mm Renderer/DataPack/Test/SpanPack/polygonpack.cpp TaskManager/Cell/CellBufferManager.cc TaskManager/Cell/CellTaskManagerImpl.cc TaskManager/Cell/SpeThreads.cc TaskManager/Cell/spe/CellScheduler.cc TaskManager/Cell/spe/Task.cc TaskManager/ChangeLog TaskManager/Fifo/FifoDmaManager.cc TaskManager/Fifo/FifoTaskManagerImpl.cc TaskManager/Fifo/MainScheduler.cc TaskManager/Makefile.cell TaskManager/Test/simple_pack/main.cpp TaskManager/Test/simple_pack/span.cpp TaskManager/Test/simple_pack/task/update_sgp.cpp TaskManager/Test/simple_render/SpanC.cpp TaskManager/Test/simple_render/fb.h TaskManager/Test/simple_render/main.cpp TaskManager/Test/simple_render/spe/CreatePolygonPack.cpp TaskManager/Test/simple_render/spe/SpuDraw.cpp TaskManager/Test/simple_render/task/create_span.cpp TaskManager/Test/simple_render/task/span_pack_draw.cpp TaskManager/Test/simple_render/task/task_init.cpp TaskManager/Test/simple_render/task/update_sgp.cpp TaskManager/Test/simple_render/test/LoadTexture/polygon.cpp TaskManager/Test/simple_render/viewer_types.h TaskManager/Test/test_render/Makefile TaskManager/Test/test_render/Makefile.cell TaskManager/Test/test_render/Makefile.macosx TaskManager/Test/test_render/SGList.cpp TaskManager/Test/test_render/SGList.h TaskManager/Test/test_render/SpanC.cpp TaskManager/Test/test_render/enemy_action.cpp TaskManager/Test/test_render/fb.h TaskManager/Test/test_render/spe/CreatePolygon.cpp TaskManager/Test/test_render/spe/CreateSpan.cpp TaskManager/Test/test_render/spe/DrawBack.cpp TaskManager/Test/test_render/spe/DrawSpan.cpp TaskManager/Test/test_render/spe/DrawSpanRenew.cpp TaskManager/Test/test_render/spe/Load_Texture.cpp TaskManager/Test/test_render/spe/Set_Texture.cpp TaskManager/Test/test_render/task/DrawSpan.cpp TaskManager/Test/test_render/task/DrawSpanRenew.cpp TaskManager/Test/test_render/task/task_init.cpp TaskManager/Test/test_render/task/update_sgp.cpp TaskManager/Test/test_render/tools/create_sglist.pl TaskManager/Test/test_render/viewer.cpp TaskManager/Test/test_render/viewer_types.h TaskManager/kernel/main.cc TaskManager/kernel/schedule/SchedTask.cc
diffstat 50 files changed, 596 insertions(+), 405 deletions(-) [+]
line wrap: on
line diff
--- a/Document/Cerium_2009.mm	Wed Jun 10 15:12:39 2009 +0900
+++ b/Document/Cerium_2009.mm	Wed Jun 10 15:23:25 2009 +0900
@@ -17,8 +17,6 @@
 <icon BUILTIN="full-1"/>
 <icon BUILTIN="button_ok"/>
 <node CREATED="1243578499039" ID="Freemind_Link_1478568979" MODIFIED="1243944044789" TEXT="hiroki"/>
-<node CREATED="1244544615331" ID="Freemind_Link_314435740" MODIFIED="1244544645999" TEXT="test_render &#x3067;&#x30dc;&#x30bf;&#x30f3;&#x304c;&#x62bc;&#x3055;&#x308c;&#x305f;&#x3068;&#x304d;&#x306b;&#x8868;&#x793a;&#x3059;&#x308b;Task&#x3092;&#x8d77;&#x52d5;&#x3059;&#x308b;"/>
-<node CREATED="1244544654035" ID="Freemind_Link_1019324151" MODIFIED="1244544685192" TEXT="SPU 0 &#x301c; 5 &#x306b;&#x8868;&#x793a;&#x3059;&#x308b; Task &#x3092;&#x751f;&#x6210;&#x3059;&#x308b;"/>
 </node>
 </node>
 <node CREATED="1243334733712" ID="Freemind_Link_1055841346" MODIFIED="1243334790932" TEXT="Code&#x306e;Load">
@@ -31,6 +29,7 @@
 </node>
 <node CREATED="1243584255924" ID="Freemind_Link_784128675" MODIFIED="1243767918303" TEXT="dma_wait &#x5f8c;&#x843d;&#x3061;&#x308b;">
 <icon BUILTIN="button_ok"/>
+<node CREATED="1243584287314" ID="Freemind_Link_1653925279" MODIFIED="1243584287314" TEXT=""/>
 </node>
 <node CREATED="1243584369566" HGAP="26" ID="Freemind_Link_1788139696" MODIFIED="1243943459201" TEXT="code_load &#x3092;&#x3069;&#x3053;&#x306b;&#x5165;&#x308c;&#x308b;&#xff1f;" VSHIFT="4">
 <icon BUILTIN="full-1"/>
@@ -57,35 +56,32 @@
 </node>
 <node CREATED="1243334967348" HGAP="23" ID="Freemind_Link_728996277" MODIFIED="1243334981305" TEXT="Rendering" VSHIFT="-5">
 <node CREATED="1243334991181" ID="Freemind_Link_151269429" MODIFIED="1243334997520" TEXT="Z sort"/>
-<node CREATED="1243335004925" ID="Freemind_Link_1543200827" MODIFIED="1244544966902" TEXT="Texture&#x629c;&#x304d;&#x306e;Write">
-<icon BUILTIN="full-2"/>
-<node CREATED="1244544974228" ID="Freemind_Link_1606682245" MODIFIED="1244544978721" TEXT="yutaka"/>
-<node CREATED="1244544996712" ID="Freemind_Link_1723799405" MODIFIED="1244545001518" TEXT="&#x8272;&#x306e;&#x6307;&#x5b9a;"/>
-</node>
+<node CREATED="1243335004925" ID="Freemind_Link_1543200827" MODIFIED="1243335017960" TEXT="Texture&#x629c;&#x304d;&#x306e;Write"/>
 <node CREATED="1243335087307" ID="Freemind_Link_675827042" MODIFIED="1243943707646" TEXT="&#x5149;&#x6e90;">
 <icon BUILTIN="full-1"/>
-<node CREATED="1243943756522" ID="Freemind_Link_1524342007" MODIFIED="1244544596362" TEXT="SpanPack &#x306b;&#x5149;&#x306e;&#x65b9;&#x5411;&#x3092;&#x3044;&#x308c;&#x308b;">
-<icon BUILTIN="button_ok"/>
+<node CREATED="1243943756522" ID="Freemind_Link_1524342007" MODIFIED="1243943778264" TEXT="SpanPack &#x306b;&#x5149;&#x306e;&#x65b9;&#x5411;&#x3092;&#x3044;&#x308c;&#x308b;">
 <node CREATED="1243944032110" ID="Freemind_Link_1186115113" MODIFIED="1243944036836" TEXT="yutaka"/>
 </node>
-<node CREATED="1244544567403" ID="Freemind_Link_1562932476" MODIFIED="1244544588759" TEXT="&#x8907;&#x6570;&#x306e;&#x5149;&#x6e90;&#x3092;global_get"/>
 </node>
 <node CREATED="1243335102555" ID="Freemind_Link_300667458" MODIFIED="1243335111239" TEXT="perspective"/>
 <node CREATED="1243335124792" ID="Freemind_Link_373044243" MODIFIED="1243335127788" TEXT="camera"/>
 </node>
 <node CREATED="1243334938485" ID="Freemind_Link_952011832" MODIFIED="1243334941904" TEXT="&#x5b9f;&#x88c5;&#x4f8b;">
-<node CREATED="1243334942821" ID="Freemind_Link_1640545704" MODIFIED="1244545471110" TEXT="Super_Dandy">
-<icon BUILTIN="full-3"/>
-<node CREATED="1244545462124" ID="Freemind_Link_1671391521" MODIFIED="1244545465039" TEXT="KoBa"/>
-</node>
-<node CREATED="1243335414034" ID="Freemind_Link_175851707" MODIFIED="1244545506517" TEXT="Racing Game">
-<icon BUILTIN="full-3"/>
-<node CREATED="1244545492395" ID="Freemind_Link_1846997152" MODIFIED="1244545498749" TEXT="&#x30b7;&#x30e7;&#x30a6;&#x30b7;&#x30fc;"/>
-</node>
+<node CREATED="1243334942821" ID="Freemind_Link_1640545704" MODIFIED="1243334951264" TEXT="Super_Dandy"/>
+<node CREATED="1243335414034" ID="Freemind_Link_175851707" MODIFIED="1243335427461" TEXT="Racing Game"/>
 </node>
 <node CREATED="1243335132056" ID="Freemind_Link_966536257" MODIFIED="1243335158564" TEXT="Network">
 <node CREATED="1243335159672" ID="Freemind_Link_710888232" MODIFIED="1243335177852" TEXT="Federated Linda"/>
 </node>
+<node CREATED="1244195368998" ID="Freemind_Link_344530979" MODIFIED="1244195487031" TEXT="Documentation">
+<node CREATED="1244195375774" ID="Freemind_Link_1804698870" MODIFIED="1244195490301" TEXT="Doxygen">
+<icon BUILTIN="button_ok"/>
+<node CREATED="1244195390125" ID="Freemind_Link_396837642" MODIFIED="1244195420362" TEXT="Task API">
+<icon BUILTIN="full-1"/>
+<node CREATED="1244195445543" ID="Freemind_Link_1489702866" MODIFIED="1244195453242" TEXT="Kaito"/>
+</node>
+</node>
+</node>
 </node>
 <node CREATED="1243335266234" ID="Freemind_Link_388441282" MODIFIED="1243767884427" POSITION="left" TEXT="&#x53f3;&#x304c;&#x7d42;&#x308f;&#x3063;&#x305f;&#x3089;Optimize"/>
 <node CREATED="1243756108386" ID="Freemind_Link_1530684505" MODIFIED="1243756115045" POSITION="left" TEXT="&#x8aad;&#x3093;&#x3067;&#x884c;&#x304f;&#x6642;&#x306e;&#x8ab2;&#x984c;">
@@ -110,11 +106,7 @@
 <node CREATED="1243767262537" ID="Freemind_Link_507081989" MODIFIED="1243943546127" TEXT="SceneGraph &#x306e;&#x5909;&#x5f62;&#x3092; copy base &#x306b;&#x3059;&#x308b;">
 <icon BUILTIN="full-1"/>
 <node CREATED="1243767288336" ID="Freemind_Link_388959053" MODIFIED="1243767306119" TEXT="drawing &#x3068; SceneGraph &#x306e;&#x6f14;&#x7b97;&#x3092;&#x4e26;&#x5217;&#x306b;"/>
-<node CREATED="1244544869860" ID="Freemind_Link_660333063" MODIFIED="1244544908063" TEXT="SPU&#x4e0a;&#x3067;&#x52d5;&#x4f5c;&#x3059;&#x308b;&#x3088;&#x3046;&#x306b;&#x3059;&#x308b;(CreatePolygonPP2)"/>
-<node CREATED="1244544908668" ID="Freemind_Link_56800585" MODIFIED="1244544927456" TEXT="Task&#x306e;&#x4e2d;&#x3067;dma_load&#x3057;&#x306a;&#x3044;">
-<node CREATED="1244544928324" ID="Freemind_Link_690247851" MODIFIED="1244544946964" TEXT="&#x305d;&#x306e;&#x305f;&#x3081;&#x306b;&#x5fc5;&#x8981;&#x306a;Task&#x306e;API&#x3092;&#x7528;&#x610f;&#x3059;&#x308b;"/>
-</node>
-<node CREATED="1243943934419" ID="Freemind_Link_1634946486" MODIFIED="1244544830283" TEXT="Kaito"/>
+<node CREATED="1243943934419" ID="Freemind_Link_1634946486" MODIFIED="1243943944585" TEXT="tagano"/>
 </node>
 <node CREATED="1243767320557" ID="Freemind_Link_830109616" MODIFIED="1243767357291" TEXT="&#x30a2;&#x30fc;&#x30ad;&#x30c6;&#x30af;&#x30c1;&#x30e3;&#x306b;&#x4f9d;&#x5b58;&#x3057;&#x305f; Task &#x306e; scheduling">
 <node CREATED="1243767364243" ID="Freemind_Link_683952054" MODIFIED="1243767371836" TEXT="Task &#x306e;&#x5b9a;&#x7fa9;&#x306e;&#x5916;&#x306b;&#x51fa;&#x3059;"/>
@@ -127,34 +119,123 @@
 <icon BUILTIN="full-1"/>
 <node CREATED="1243943627426" ID="Freemind_Link_57266388" MODIFIED="1243943646050" TEXT="autoconf"/>
 <node CREATED="1243943652122" ID="Freemind_Link_1676705308" MODIFIED="1243943682172" TEXT="Architecture &#x306e; specialization"/>
-<node CREATED="1243943991903" ID="Freemind_Link_447888194" MODIFIED="1244544760508" TEXT="KoBa"/>
+<node CREATED="1243943991903" ID="Freemind_Link_447888194" MODIFIED="1243943997324" TEXT="hiroki"/>
 </node>
 <node CREATED="1243943883125" ID="Freemind_Link_722594854" MODIFIED="1243944098553" TEXT="&#x4f8b;&#x984c;&#x306e;&#x6574;&#x7406;">
 <icon BUILTIN="full-1"/>
 <node CREATED="1243943799623" ID="Freemind_Link_478163251" MODIFIED="1243943825181" TEXT="test_render &#x89e3;&#x4f53;">
 <node CREATED="1243943832806" ID="Freemind_Link_1334546525" MODIFIED="1243943841025" TEXT="&#x4f5c;&#x308a;&#x76f4;&#x3059;"/>
-<node CREATED="1244545355198" ID="Freemind_Link_1395032705" MODIFIED="1244545390920" TEXT="test_render &#x306e; Task &#x306e;&#x30c6;&#x30b9;&#x30c8;">
-<icon BUILTIN="full-2"/>
-<node CREATED="1244545380854" ID="Freemind_Link_448813750" MODIFIED="1244545383481" TEXT="KoBa"/>
+</node>
+<node CREATED="1243943907996" ID="Freemind_Link_766522959" MODIFIED="1244195518922" TEXT="example &#x3092;&#x4eca;&#x306e; ver &#x306b;&#x3059;&#x308b;">
+<icon BUILTIN="button_ok"/>
+</node>
+<node CREATED="1243944111117" ID="Freemind_Link_640625182" MODIFIED="1243944122505" TEXT="all member"/>
+</node>
+<node CREATED="1244197352799" ID="Freemind_Link_1895470931" MODIFIED="1244197358376" TEXT="API &#x306e;&#x6574;&#x7406;">
+<node CREATED="1244197362014" ID="Freemind_Link_901399449" MODIFIED="1244197385157" TEXT="wait_for &#x3057;&#x3066;&#x3044;&#x308b; task &#x306b;&#x76f4;&#x63a5;&#x30c7;&#x30fc;&#x30bf;&#x3092;&#x66f8;&#x304f;">
+<node CREATED="1244197407714" ID="Freemind_Link_288985550" MODIFIED="1244197435201" TEXT="wait_for(task, buff)">
+<node CREATED="1244197614248" ID="Freemind_Link_1094033372" MODIFIED="1244197616835" TEXT="kono"/>
 </node>
 </node>
-<node CREATED="1243943907996" ID="Freemind_Link_766522959" MODIFIED="1243943926580" TEXT="example &#x3092;&#x4eca;&#x306e; ver &#x306b;&#x3059;&#x308b;"/>
-<node CREATED="1243944111117" ID="Freemind_Link_640625182" MODIFIED="1243944122505" TEXT="all member"/>
-<node CREATED="1244544770134" ID="Freemind_Link_479862774" MODIFIED="1244544796668" TEXT="SchedTask&#x306e;&#x7d99;&#x627f;&#x3092;&#x3057;&#x306a;&#x3044;"/>
-<node CREATED="1244544801340" ID="Freemind_Link_1114791749" MODIFIED="1244545319507" TEXT="run&#x306e;&#x5f15;&#x6570;&#x3067;SchedTask&#x3092;&#x6e21;&#x3059;">
-<icon BUILTIN="button_ok"/>
+<node CREATED="1244197443489" ID="Freemind_Link_125766992" MODIFIED="1244197453694" TEXT="set_symbol">
+<node CREATED="1244197456033" ID="Freemind_Link_1569844487" MODIFIED="1244197611724" TEXT="&#x53e4;&#x3044;&#x306e;&#x3067;&#x53d6;&#x308a;&#x9664;&#x304f;">
+<icon BUILTIN="full-1"/>
+</node>
+</node>
+<node CREATED="1244197481779" ID="Freemind_Link_797021358" MODIFIED="1244197537933" TEXT="set_inData()">
+<node CREATED="1244197547212" ID="Freemind_Link_158350291" MODIFIED="1244197562140" TEXT="&#x3053;&#x308c;&#x306f;&#x4f7f;&#x308f;&#x305a; List dma &#x3067;&#x884c;&#x3046;"/>
+</node>
+<node CREATED="1244197577153" ID="Freemind_Link_1089652662" MODIFIED="1244197581828" TEXT="task array">
+<node CREATED="1244197585217" ID="Freemind_Link_540367081" MODIFIED="1244197607775" TEXT="&#x3053;&#x3063;&#x3061;&#x3082; List dma"/>
 </node>
 </node>
 </node>
-<node CREATED="1244545101880" ID="Freemind_Link_1259956700" MODIFIED="1244545274916" POSITION="left" TEXT="CbC">
-<icon BUILTIN="full-2"/>
-<node CREATED="1244545115592" ID="Freemind_Link_1164269640" MODIFIED="1244545145257" TEXT="PPU&#x306e;indirect_jump"/>
-<node CREATED="1244545152040" ID="Freemind_Link_302170687" MODIFIED="1244545170201" TEXT="&#x5f15;&#x6570;&#x306e;&#x30ec;&#x30b8;&#x30b9;&#x30bf;&#x3078;&#x306e;mapping"/>
-<node CREATED="1244545172417" ID="Freemind_Link_1870383582" MODIFIED="1244545180564" TEXT="&#x95a2;&#x6570;&#x5185;&#x90e8;&#x306e;goto">
-<node CREATED="1244545182016" ID="Freemind_Link_1408393906" MODIFIED="1244545204164" TEXT="&#x74b0;&#x5883;&#x3092;&#x30bb;&#x30fc;&#x30d6;&#x3059;&#x308b;&#x5834;&#x6240;&#x3092;Thread local&#x306b;&#x3059;&#x308b;"/>
+<node CREATED="1244193625986" FOLDED="true" ID="Freemind_Link_701330739" MODIFIED="1244197654332" POSITION="left" TEXT="Task &#x3068; Renderer &#x306e;&#x6574;&#x7406;">
+<icon BUILTIN="full-1"/>
+<node CREATED="1244193645575" ID="Freemind_Link_1173374726" MODIFIED="1244193670426" TEXT="&#x8907;&#x6570;&#x306e; Task &#x304c;&#x751f;&#x6210;&#x3055;&#x308c;&#x308b;">
+<node CREATED="1244193727669" ID="Freemind_Link_1268929487" MODIFIED="1244193736216" TEXT="Linux &#x7528;"/>
+<node CREATED="1244193737941" ID="Freemind_Link_368325310" MODIFIED="1244193742504" TEXT="SPE &#x7528;"/>
+</node>
+<node CREATED="1244193689878" ID="Freemind_Link_639973478" MODIFIED="1244193700240" TEXT="&#x8907;&#x6570;&#x306e; Project"/>
+<node CREATED="1244193708704" ID="Freemind_Link_1528860920" MODIFIED="1244193724594" TEXT="TaskManager &#x306f;&#x5225; dir"/>
+<node CREATED="1244193761741" ID="Freemind_Link_382768400" MODIFIED="1244193770786" TEXT="&#x5358;&#x7d14;&#x306a; Link &#x3067;&#x306f;&#x3067;&#x304d;&#x306a;&#x3044;">
+<node CREATED="1244193774725" ID="Freemind_Link_1257872906" MODIFIED="1244193796261" TEXT="SPU &#x306e; Task &#x306f; fixpic.pl"/>
+<node CREATED="1244193800916" ID="Freemind_Link_1452077817" MODIFIED="1244194144503" TEXT="Overlay &#x7528;&#x306b; ld script &#x751f;&#x6210;"/>
+<node CREATED="1244193822003" ID="Freemind_Link_180312868" MODIFIED="1244193836444" TEXT="&#x540c;&#x69d8;&#x306e;&#x52d5;&#x4f5c;&#x3092;&#x3059;&#x308b; Linux &#x7528; Task"/>
+<node CREATED="1244193839763" ID="Freemind_Link_684133611" MODIFIED="1244193845032" TEXT="Makefile &#x306e;&#x751f;&#x6210;"/>
+<node CREATED="1244193862979" ID="Freemind_Link_1572825155" MODIFIED="1244193877683" TEXT="&#x4ed6;&#x306e; Project &#x306e; Task include"/>
+</node>
+<node CREATED="1244193888042" ID="Freemind_Link_77829001" MODIFIED="1244193907388" TEXT="&#x751f;&#x6210; script">
+<node CREATED="1244193925330" ID="Freemind_Link_62306375" MODIFIED="1244193973558" TEXT="&#x4f55;&#x3092;&#x8aad;&#x307f;&#x8fbc;&#x3080;&#x306e;&#x304b;">
+<node CREATED="1244193980897" ID="Freemind_Link_1309775877" MODIFIED="1244194019677" TEXT="Task dirrectly &#x4e0b;&#x306e; Task">
+<node CREATED="1244194079990" ID="Freemind_Link_1832183795" MODIFIED="1244194097528" TEXT="SPU &#x7528;&#x306b;&#x7279;&#x6b8a;&#x5316;&#x3057;&#x305f; Task">
+<node CREATED="1244194429596" ID="Freemind_Link_1864588466" MODIFIED="1244194442368" TEXT="spe &#x306e;&#x4e0b;&#x306b;&#x7f6e;&#x304f;"/>
+</node>
+</node>
+<node CREATED="1244194022848" ID="Freemind_Link_340021666" MODIFIED="1244194042054" TEXT="Task &#x306e; property">
+<node CREATED="1244194318241" ID="Freemind_Link_1694330225" MODIFIED="1244194347986" TEXT="Task &#x306e; source file &#x306b;&#x66f8;&#x304f;&#x304b;"/>
+<node CREATED="1244194332595" ID="Freemind_Link_297529046" MODIFIED="1244194344283" TEXT="Task.xml &#x306b;&#x66f8;&#x304f;&#x304b;">
+<node CREATED="1244194401141" ID="Freemind_Link_324450065" MODIFIED="1244194424397" TEXT="task name"/>
+</node>
+</node>
+<node CREATED="1244194048671" ID="Freemind_Link_83841604" MODIFIED="1244194067046" TEXT="include &#x3059;&#x308b; Project &#x306e;&#x6307;&#x5b9a;">
+<node CREATED="1244194367558" ID="Freemind_Link_1248430118" MODIFIED="1244194384513" TEXT="Project.xml &#x3092;&#x4f5c;&#x308b;"/>
+<node CREATED="1244194525525" ID="Freemind_Link_1218365852" MODIFIED="1244194544099" TEXT="OS &#x306b;&#x3088;&#x3063;&#x3066; include &#x3059;&#x308b; Project &#x3092;&#x4ee3;&#x3048;&#x308b;"/>
+<node CREATED="1244194546253" ID="Freemind_Link_1082915051" MODIFIED="1244194553260" TEXT="fifo Manager"/>
+<node CREATED="1244194553613" ID="Freemind_Link_94805969" MODIFIED="1244194559318" TEXT="cell Manager"/>
+</node>
+</node>
+<node CREATED="1244193974881" ID="Freemind_Link_537320432" MODIFIED="1244193978202" TEXT="&#x4f55;&#x3092;&#x751f;&#x6210;&#x3059;&#x308b;&#x306e;&#x304b;">
+<node CREATED="1244194112790" ID="Freemind_Link_78213203" MODIFIED="1244194119354" TEXT="Makefile"/>
+<node CREATED="1244194121558" ID="Freemind_Link_761598913" MODIFIED="1244194131416" TEXT="ld script"/>
+<node CREATED="1244194133933" ID="Freemind_Link_1723085633" MODIFIED="1244194136337" TEXT="func.h"/>
+<node CREATED="1244194452419" ID="Freemind_Link_508292863" MODIFIED="1244194459954" TEXT="&#x751f;&#x6210; object">
+<node CREATED="1244194461651" ID="Freemind_Link_1774977667" MODIFIED="1244194472599" TEXT="spu main">
+<node CREATED="1244194474203" ID="Freemind_Link_588029435" MODIFIED="1244194482439" TEXT="embeded"/>
 </node>
-<node CREATED="1244545215705" ID="Freemind_Link_1068131680" MODIFIED="1244545227748" TEXT="Data Segment &#x306e;&#x5b9a;&#x7fa9;"/>
-<node CREATED="1244545229768" ID="Freemind_Link_1164262083" MODIFIED="1244545251172" TEXT="Data Segment &#x3092;&#x8ee2;&#x9001;&#x3059;&#x308b; Code Segment &#x306e;&#x5b9a;&#x7fa9;"/>
+<node CREATED="1244194489939" ID="Freemind_Link_938154914" MODIFIED="1244194495136" TEXT="ppu.o"/>
+</node>
+</node>
+<node CREATED="1244194166653" ID="Freemind_Link_420595528" MODIFIED="1244194172741" TEXT="&#x4f7f;&#x3044;&#x65b9;">
+<node CREATED="1244194174708" ID="Freemind_Link_913924057" MODIFIED="1244194244825" TEXT="make &#x306e;&#x4ee3;&#x308f;&#x308a;&#x306b;&#x4f7f;&#x3046;">
+<node CREATED="1244194245536" ID="Freemind_Link_1610936977" MODIFIED="1244194253425" TEXT="&#x4e2d;&#x3067; make &#x3092;&#x547c;&#x3076;"/>
+</node>
+<node CREATED="1244195022249" ID="Freemind_Link_1184501567" MODIFIED="1244195031444" TEXT="script &#x306e;&#x540d;&#x524d;">
+<node CREATED="1244195031857" ID="Freemind_Link_1095160292" MODIFIED="1244195111267" TEXT="cerium_make" VSHIFT="1"/>
+</node>
+</node>
+<node CREATED="1244194582752" ID="Freemind_Link_1486772533" MODIFIED="1244194586419" TEXT="&#x4f8b;&#x984c;">
+<node CREATED="1244194593606" ID="Freemind_Link_1794484768" MODIFIED="1244194599178" TEXT="test_render">
+<node CREATED="1244194601902" ID="Freemind_Link_960793768" MODIFIED="1244194614986" TEXT="Renderer"/>
+<node CREATED="1244194634757" ID="Freemind_Link_894031439" MODIFIED="1244194641573" TEXT="&#x5206;&#x96e2;"/>
+<node CREATED="1244194615309" ID="Freemind_Link_722552679" MODIFIED="1244194663568" TEXT="Test">
+<node CREATED="1244194673020" ID="Freemind_Link_1810212132" MODIFIED="1244194680930" TEXT="video-mode check"/>
+<node CREATED="1244194687908" ID="Freemind_Link_213845842" MODIFIED="1244194693407" TEXT="no-video-mode"/>
+</node>
+</node>
+<node CREATED="1244194736313" ID="Freemind_Link_1103784183" MODIFIED="1244194740124" TEXT="&#x5834;&#x6240;">
+<node CREATED="1244194740493" ID="Freemind_Link_1667247959" MODIFIED="1244194880277" TEXT="Cerium/Renderer/fb">
+<node CREATED="1244194913168" ID="Freemind_Link_120515783" MODIFIED="1244194920364" TEXT="Task"/>
+<node CREATED="1244194920784" ID="Freemind_Link_1570615471" MODIFIED="1244194930992" TEXT="spe"/>
+</node>
+<node CREATED="1244194881478" ID="Freemind_Link_1372200566" MODIFIED="1244194891874" TEXT="Cerium/Renderer/openGL"/>
+<node CREATED="1244194966158" ID="Freemind_Link_1011475234" MODIFIED="1244194977821" TEXT="Cerium/example">
+<node CREATED="1244194978654" ID="Freemind_Link_1112549863" MODIFIED="1244194994365" TEXT="SceneGraph">
+<node CREATED="1244194996614" ID="Freemind_Link_693836946" MODIFIED="1244194999210" TEXT="test1"/>
+<node CREATED="1244195011830" ID="Freemind_Link_1012481793" MODIFIED="1244195013459" TEXT="test2"/>
+</node>
+</node>
+</node>
+</node>
+<node CREATED="1244195176485" ID="Freemind_Link_1222059690" MODIFIED="1244195201879" TEXT="Directly &#x69cb;&#x6210;" VSHIFT="-10">
+<node CREATED="1244195202706" ID="Freemind_Link_425257332" MODIFIED="1244195219282" TEXT="/usr/local/Cerium">
+<node CREATED="1244195220338" ID="Freemind_Link_1882319906" MODIFIED="1244195223092" TEXT="include"/>
+<node CREATED="1244195223681" ID="Freemind_Link_234949444" MODIFIED="1244195226509" TEXT="lib"/>
+<node CREATED="1244195227025" ID="Freemind_Link_1748375798" MODIFIED="1244195232312" TEXT="bin"/>
+</node>
+</node>
+</node>
+<node CREATED="1244197635639" ID="Freemind_Link_1051100294" MODIFIED="1244197639458" TEXT="kono"/>
 </node>
 </node>
 </map>
--- a/Renderer/DataPack/Test/SpanPack/polygonpack.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/Renderer/DataPack/Test/SpanPack/polygonpack.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -84,7 +84,7 @@
 	int end_y   = (int)vMin->y; 
 	
 	if (start_y<end_y) { 
-		int i; i=end_y; end_y=start_y; start_y = i;   //y$B$NF~$lBX$((B 
+		int i; i=end_y; end_y=start_y; start_y = i;   //yの入れ替え 
 		k = 1;
 		l = -1;
 	}
@@ -92,13 +92,13 @@
 	div_y = start_y - end_y;  // > 0
 
 	for(i = k; i < div_y+1; i++) {
-		//$B$3$3$G(Bspan$B$N:8C<$H1&C<$N(Bx,z$B$r5a$a$F$k(B
+		//ここでspanの左端と右端のx,zを求めてる
 		tmp_xpos = calc(vMid1->x - vMin->x ,div_y, i, vMin->x);
 		tmp_end =  calc(vMid->x  - vMin->x ,div_y, i, vMin->x); 
 		tmp_z =    calc(vMid1->z - vMin->z ,div_y, i, vMin->z);
 		tmp_zpos = calc(vMid->z  - vMin->z ,div_y, i, vMin->z);
 		//printf("x:%f end:%f z:%f zpos:%f\n",tmp_xpos,tmp_end,tmp_z,tmp_zpos);
-		//$B$3$3$+$i(Bspan$B$N:8C<$H1&C<$KBP1~$9$k%F%/%9%A%c$r7W;;$9$k(B
+		//ここからspanの左端と右端に対応するテクスチャを計算する
 		tmp_tex1 =((i/(div_y)) * vMid1->tex_x) + \
          		( ((div_y - i)/(div_y)) * vMin->tex_x); 
 		tmp_tex2 =( (i/(div_y)) * vMid->tex_x) + \
--- a/TaskManager/Cell/CellBufferManager.cc	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Cell/CellBufferManager.cc	Wed Jun 10 15:23:25 2009 +0900
@@ -7,8 +7,8 @@
 {
     BufferManager::init();
 
-    // ʤġ
-    // ʡ
+    // なんつーか。。。
+    // おかしいよな・・・
     delete taskListImpl;
     taskListImpl = new CellTaskListInfo;
     taskListImpl->init(machineNum*2);
--- a/TaskManager/Cell/CellTaskManagerImpl.cc	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Cell/CellTaskManagerImpl.cc	Wed Jun 10 15:23:25 2009 +0900
@@ -1,3 +1,5 @@
+#define DEBUG
+#include "error.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -5,7 +7,6 @@
 #include "CellBufferManager.h"
 #include "PpeScheduler.h"
 #include "types.h"
-#include "error.h"
 
 CellTaskManagerImpl::~CellTaskManagerImpl(void)
 {
@@ -13,8 +14,8 @@
     delete [] speTaskList;
     delete [] speTaskList_bg;
     /**
-     * bufferManager 
-     * ppeManager Τʤ delete Ƥ餦
+     * bufferManager は
+     * ppeManager のなかで delete してもらう
      */
     // delete bufferManager;
     delete [] flag_sendTaskList;
@@ -43,7 +44,7 @@
 	flag_sendTaskList[i] = 1;
     }
 
-    // PPE ¦δ򤹤 Manager
+    // PPE 側の管理をする Manager
     ppeManager = new FifoTaskManagerImpl(machineNum);
     ppeManager->init(new PpeScheduler, bufferManager);
 }
@@ -61,22 +62,22 @@
     }
 }
 
-// SPE_ANY ꤵƤ
-// 򥤥󥯥ȤĤĸƤ֤Ȥˤ롣
-// ȤäƤ⤤ɤ
+// SPE_ANY が指定されていた時に
+// これをインクリメントしつつ呼ぶことにする。
+// 乱数使ってもいいけどさ。
 int cur_anySpeid = 0;
 
 /**
- * ActiveTaskQueue  Task 
- *  SPE Ϥ TaskList 
+ * ActiveTaskQueue から Task を
+ * 各 SPE に渡す TaskList に入れる
  *
- *  activeTaskQueue  FifoTaskManagerImpl ΤỌ̇̄㤤
- * spe Ϥ Task äƤ
+ * ここの activeTaskQueue は FifoTaskManagerImpl のと意味が違い、
+ * spe に渡される Task だけ入っている
  */
 void
 CellTaskManagerImpl::set_runTaskList(void)
 {
-    // ...ľ
+    // ここ...直すかな
     TaskListPtr list;
     TaskQueuePtr queue;
     TaskQueuePtr d;
@@ -99,16 +100,16 @@
 	    cur_anySpeid = (cur_anySpeid < machineNum)
 		? cur_anySpeid : 0;
 	} else {
-	    // -1 ƤΤ
-	    // htask->cpu_type - CPU_SPE 
-	    // SPE0 = 1, SPE1 = 2, ... SPE5 = 6 äƤʤäƤΤ
-	    // Ū (SPE0 = arr[0], SPE1 = arr[1]) ˤ뤿
+	    // -1 してるのは
+	    // htask->cpu_type - CPU_SPE で
+	    // SPE0 = 1, SPE1 = 2, ... SPE5 = 6 ってなってるので
+	    // 配列的 (SPE0 = arr[0], SPE1 = arr[1]) にするため
 	    speid = htask->cpu_type - CPU_SPE - 1;
 
-	    // SPU οʾ夬ꤵƤ
-	    // Ȥꤢ MAX_USE_SPE_NUM (ºݤư SPE κ) 
-	    // ޤƤȤȤˤ롣
-	    // ȽꤹǤʤ
+	    // SPU の数以上が指定されていれば
+	    // とりあえず MAX_USE_SPE_NUM (実際に動く SPE の最大数) で
+	    // あまり求めてそれを使うことにする。
+	    // ここで判定するもんでもないか?
 	    if (speid >= machineNum) {
 		speid %= machineNum;
 	    }
@@ -145,18 +146,18 @@
     TaskListPtr ppeTaskList = NULL;
     MailQueuePtr ppeMail = NULL;
 
-    // PPE ¦ư TaskList Ǥ
-    // FifoTaskManagerImpl::run Ⱦ꤯礦褦
-    // ʤȤäƤޤ
+    // PPE 側で動く TaskList です
+    // FifoTaskManagerImpl::run と上手く合うように
+    // こんなことやってますよ
     ppeTaskList = ppeManager->get_runTaskList();
     if (!ppeTaskList) {
 	goto cont;
     }
 
-    // SPE  Mailbox Check 
-    // PPE ¦ schedule ȴ褿Ȥ˹Ԥ
-    // (speThreads  Blocking Mailbox read 
-    // ޥեȤȤäƤäƤ⤤Ϥ)
+    // SPE からの Mailbox Check は
+    // PPE 側の schedule から抜けて来たときに行う
+    // (speThreads で Blocking Mailbox read と
+    // セマフォとか使ってやってもいいが、今はこの方式で)
     do {
 	ppeMail = ppeManager->schedule(ppeTaskList);
     cont:
@@ -165,37 +166,37 @@
 }
 
 /**
- * SPE Υ᡼å
+ * SPE からのメールをチェックする
  *
  * @param [mail_list]
- *        PPE ¦ư Scheduler Υ᡼ꥹ
- *         PPE ¦ mail check Ԥ
+ *        PPE 側で動く Scheduler からのメールリスト
+ *        この中で PPE 側の mail check も行う
  *
- * @return PPE Scheduler ФƤΥ᡼롣
- *         ˼¹Ԥ TaskList Υɥ쥹䡢λޥɤ
+ * @return PPE Scheduler に対してのメール。
+ *         次に実行する TaskList のアドレスや、終了コマンドを送る
  */TaskListPtr
 CellTaskManagerImpl::mail_check(MailQueuePtr mail_list)
 {
-    // PPE Scheduler  mail check
+    // PPE Scheduler からの mail check
     ppeManager->mail_check(mail_list, &waitTaskQueue);
 
     do {
 	unsigned int data;
 
-	// SPE Scheduler  mail check
+	// SPE Scheduler からの mail check
 	for (int id = 0; id < machineNum; id++) {	    
 	    while (speThreads->check_mail(id, 1, &data)) {				
 		
 		/**
-		 * MY_SPE_STATUS_READY: SPE äƤ Task ƽλ
-		 * MY_SPE_NOP: ä˰̣Τʤޥ
-		 * ʳλ(PPEˤΤǥɥ쥹
+		 * MY_SPE_STATUS_READY: SPE が持ってた Task 全て終了
+		 * MY_SPE_NOP: 特に意味のないコマンド
+		 * それ以外:終了したタスク(PPEにあるのでアドレス
 		 *
-		 * MY_SPE_NOP  0 ʤΤǡ
-		 * Τ褦 data > MY_SPE_NOP ȤƤޤ
-		 * ܤǤ褯狼ʤʤǡľȤǤ
+		 * MY_SPE_NOP が 0 なので、
+		 * 下のように data > MY_SPE_NOP とかしています。
+		 * 一目でよくわからない書き方なんで、直したいところですが。。。
 		 */
-		// ̾ȤǤȷ褦 => MY_SPE_... Ȥʤ
+		// 名前あとでちゃんと決めよう => MY_SPE_... とかじゃなくて
 		if (data == MY_SPE_STATUS_READY) {
 		    __debug_ppe("[SPE %d] finish\n", id);
 		    flag_sendTaskList[id] = 1;
@@ -203,7 +204,7 @@
 		    __debug_ppe("[PPE] MALLOC COMMAND from [SPE %d]\n", id);
 
 		    /**
-		     * info[0] = alloc_id; (CellScheduler::mainMem_alloc )
+		     * info[0] = alloc_id; (CellScheduler::mainMem_alloc 参照)
 		     * info[1] = alloc_addr;
 		     */
 		    unsigned int alloc_info[3];
@@ -217,10 +218,11 @@
 		    
 		    alloc_info[1] = (unsigned int)allocate(alloc_size);
 		    /*
-		     * allocate 줿ΰϺ SPE buffer ˥󥯤Ȥ³
-		     * Ǥ TaskList  allocate(new) ϿƤ
+		     * allocate された領域は今の SPE buffer にリンクとして接続する
+		     * ここでは TaskList を allocate(new) して登録してやろうか
 		     */
 
+		    __debug_ppe("[PPE] MALLOCED 0x%x from [SPE %d]\n", alloc_info[1],id);
 		    speThreads->add_output_tasklist(command, alloc_info[1], alloc_size);
 
 		    speThreads->send_mail(id, 2, alloc_info);
@@ -231,37 +233,37 @@
 	    }
 	}
 
-	// ¸ط򥢥ƥ֤
+	// 依存関係を満たしたタスクをアクティブに
 	wakeup_waitTask();
 
-	// SPE  TaskList ν
+	// SPE に送る TaskList の準備
 	set_runTaskList();
 
-	// TaskList Ԥ SPE  TaskList 
+	// TaskList 待ちの SPE に TaskList を送る
 	for (int i = 0; i < machineNum; i++)  {
 	    if (flag_sendTaskList[i] == 1 && speTaskList_bg[i]->length >= 1 ) {
 		send_taskList(i);
 	    }
 	}
 
-	// ߤ FifoTaskManager λͤǤ
-	// PPE Ǽ¹Ԥ륿̵ʤнλ
-	// Ǥꡢξ⤷ SPE ˥ĤäƤƤ
-	// ᥤ롼פȴƥץཪλȤʤäƤޤΤ
-	// ǥȥåפƤޤ
+	// 現在の FifoTaskManager の仕様では
+	// ・PPE で実行するタスクが無くなれば終了する
+	// であり、この場合もし SPE にタスクが残っていても
+	// メインループから抜けてプログラム終了となってしまうので
+	// ここでストップかけてます。
     } while (!ppeManager->activeTaskQueue && waitTaskQueue);
 	
     return ppeManager->get_runTaskList();
 }
 
 /**
- *  SPE  TaskList 
- * 1. SPE äƤ TaskList λơ TaskList ԤäƤ
- * 2. SPE  TaskList  Task 
+ * 条件を満たしたら SPE に TaskList を送信する
+ * 条件1. SPE が持ってた TaskList を終了して、次の TaskList を待ってる
+ * 条件2. SPE に送る TaskList に Task がある
  *
- * SPE Ǽ¹Խλ TaskList [speTaskList] 
- * 줫¹Ԥ TaskList [speTaskList_bg] ΥХåեؤ
- * ĤǤ˼¹ԽλĤ clear Ƥ
+ * SPE で実行終了した TaskList [speTaskList] と
+ * これから実行する TaskList [speTaskList_bg] のバッファを入れ替える
+ * ついでに実行終了したやつは clear しておく。
  */
 void
 CellTaskManagerImpl::send_taskList(int id)
@@ -286,7 +288,7 @@
     
     posix_memalign(&buff, DEFAULT_ALIGNMENT, size);
 
-    // bzero ϥȤ⤤ΤǤꤿʤ
+    // bzero はコストが高いのでやりたくない
     bzero(buff, size);
 
     return buff;
--- a/TaskManager/Cell/SpeThreads.cc	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Cell/SpeThreads.cc	Wed Jun 10 15:23:25 2009 +0900
@@ -69,8 +69,8 @@
 
     pthread_create(&thread, NULL, &spe_thread_run, (void*)arg_t->ctx);
 
-    // mail read  blocking Ǥ
-    // ǸƤᤤ
+    // mail read の blocking ができれば
+    // ここで呼んだ方が早い。
 
     pthread_exit(NULL);
 }
@@ -109,7 +109,7 @@
 
 
 /**
- * SPE Υ᡼롣
+ * SPE からのメールを受信する。
  *
  * @param [speid] SPE ID
  *
@@ -119,13 +119,16 @@
 int
 SpeThreads::get_mail(int speid, int count, unsigned int* ret)
 {   
-    while(spe_out_mbox_status(spe_ctx[speid]) < count);    
     return spe_out_mbox_read(spe_ctx[speid], ret, count);    
 }
 
 int
 SpeThreads::check_mail(int speid, int count, unsigned int* ret)
 {
+/* 
+ *  spe_out_mbox_status return only 1, waiting for multiple length
+ *  does not work.
+ */
     if (spe_out_mbox_status(spe_ctx[speid]) >= count) {    
 	return spe_out_mbox_read(spe_ctx[speid], ret, count);   
     } else {
@@ -135,13 +138,13 @@
 
 /**
  * Inbound Mailbox
- * ᡼ PPE -> SPE
+ * メール送信 PPE -> SPE
  *
- * ʤ٤ NONBLOCKING ʤɡ
- * Inbound Mailbox 塼˶ʤǤʤΤ
- * Ƥ뤫ǧƤ롣̵Ԥġ
+ * なるべく NONBLOCKING なんだけど、
+ * Inbound Mailbox キューに空きがないと送信できないので
+ * 送信する数だけ空いているか確認してから送る。空いて無い場合は待つ。
  *
- * ԤĤʡ ALL_BLOCKING äƼ¤ busy wait äꤹ뤷
+ * 結局待つんだよな。しかも ALL_BLOCKING って実は busy wait だったりするし
  *
  * @param [speid] SPE ID
  * @param [data] Send 32-bit mailbox messages
@@ -157,10 +160,10 @@
 SpeThreads::add_output_tasklist(int command, unsigned int buff, int alloc_size)
 {
     /*
-     * output TaskList ̵п
-     *  TaskList  allocate  Task ɲ
-     * command б Task ν¹Ԥ
-     * SPE  data 񤭽Фä PPE ¦ǽ
+     * output TaskList が無ければ新しく作る
+     * あれば TaskList に allocate した Task を追加
+     * command に対応した Task の初期化を実行する
+     * SPE に data が書き出し終わった後に PPE 側で初期化
      */
     
 }
--- a/TaskManager/Cell/spe/CellScheduler.cc	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Cell/spe/CellScheduler.cc	Wed Jun 10 15:23:25 2009 +0900
@@ -4,8 +4,8 @@
 #include "CellDmaManager.h"
 #include "error.h"
 
-// 桼ץ
-// ʤɡ̯͡
+// ユーザプログラムで定義
+// なんだけど、それは微妙じゃね?
 extern void task_init(void);
 
 void
@@ -15,7 +15,9 @@
 
     mainMemNum = 0;
 
-    task_init();
+    task_init(); // PPE側ではUser 側で既に呼んでいる...
+    // SPE側はここで呼び出す必要がある
+    // Fifo ではSPEは無いので呼び出されない
 }
 
 void*
@@ -25,11 +27,11 @@
 }
 
 /**
- * ᥤΰ allocate 롣
- * allocate ΰΥɥ쥹 mainMem_get Ǽ뤬
- * mainMem_get ¹ԤǤΤ
- * Renew Task ( create  Task) 顣
- * alloc Ƥ get Ƥ⡢ɥ쥹äƤʤǤ
+ * メインメモリ領域を allocate する。
+ * allocate した領域のアドレスは mainMem_get で取得するが、
+ * mainMem_get を実行できるのは
+ * Renew Task (タスク内で create した Task) から。
+ * alloc してすぐ get しても、アドレス何も入ってないです。
  */
 void
 CellScheduler::mainMem_alloc(int id, int size)
--- a/TaskManager/Cell/spe/Task.cc	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Cell/spe/Task.cc	Wed Jun 10 15:23:25 2009 +0900
@@ -1,7 +1,7 @@
 #include "Task.h"
 
 /**
- * ϥǡɲä
+ * タスクの入力データを追加する
  *
  * @param [addr] add input data
  * @param [size] size of data at [addr]
@@ -21,12 +21,12 @@
 }
 
 /**
- * 顼λ -1 ֤äƤȤ
- * perror ߤˤۤ狼䤹ʡ
+ * エラーの時に -1 を返す、ってことするよりは
+ * perror みたいにしたほうがわかりやすいかな。
  *
- * ߤ 3 Ĥޤǡ
- * ϡ3İʾˤ task->param[] ˤ ɥ쥹
- * Υɥ쥹 ᥤǥȤ줿 int ν硣
+ * 現在は 3 個まで。
+ * 本当は、3個以上にすると task->param[] には アドレスが入り
+ * そのアドレスは メインメモリでアロケートされた int の集合。
  */
 int
 Task::add_param(int _param)
@@ -38,8 +38,8 @@
 }
 
 /*
- * 顼λ -1 ֤äƤȤ
- * perror ߤˤۤ狼䤹ʡ
+ * エラーの時に -1 を返す、ってことするよりは
+ * perror みたいにしたほうがわかりやすいかな。
  */
 int
 Task::add_data(ListDataPtr list, uint32 addr, int size)
@@ -48,7 +48,7 @@
 
     list->bound[list->length] = list->size;
 
-    // size Ǥ¤٤
+    // size でも制限かけるべき?
     list->size += size;
 
     ListElementPtr elm = &list->element[list->length++];
--- a/TaskManager/ChangeLog	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/ChangeLog	Wed Jun 10 15:23:25 2009 +0900
@@ -1,9 +1,3 @@
-<<<<<<< local
-=======
-2009-06-10  Shinji KONO  <kono@ie.u-ryukyu.ac.jp>
-
-	add light (incomplete)
-
 2009-06-8  Shinji KONO  <kono@ie.u-ryukyu.ac.jp>
 
 	SchedTask/SchedTaskImpl の分離はあんまり意味がなかった。
@@ -24,7 +18,6 @@
 
 	post で、PPE task を渡せると良い。address は parameterとして送る
 
->>>>>>> other
 2009-02-13  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>
 
 	* kernel/ppe/Random.cc (reset): fix
--- a/TaskManager/Fifo/FifoDmaManager.cc	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Fifo/FifoDmaManager.cc	Wed Jun 10 15:23:25 2009 +0900
@@ -18,7 +18,7 @@
 }
 
 /**
- * mask ꤷ DMA žδλԤ
+ * mask で設定した DMA 転送の完了を待つ
  */
 void
 FifoDmaManager::dma_wait(uint32 mask)
@@ -44,7 +44,7 @@
     q = mail_recvQueue;
 
     if (q == NULL) {
-	return 0; // error  ͤȽǤǤʤʡ
+	return 0; // error か 正しい値か判断できないな・・・
     }
 
     mail_recvQueue = mail_recvQueue->next;
--- a/TaskManager/Fifo/FifoTaskManagerImpl.cc	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Fifo/FifoTaskManagerImpl.cc	Wed Jun 10 15:23:25 2009 +0900
@@ -13,9 +13,9 @@
 }
 
 /**
- * MailManager  PPE 塼ȤΥ᡼򴹡
- * FifoScheduler  PPE ¦Υ塼
- * BufferManager  TaskTaskList ʤɤΥ(ؤʤȤƤʤ
+ * MailManager は PPE スケジューラとのメール交換、
+ * FifoScheduler は PPE 側のスケジューラ
+ * BufferManager は Task、TaskList などのメモリ管理(大層なことしてないが
  */
 void
 FifoTaskManagerImpl::init(void)
@@ -35,10 +35,10 @@
 }
 
 /**
- *  CellTaskManagerImpl ƤФ롣
- * BufferManager ϶ѤǻȤΤǰˡ
- * CellTaskManagerImpl  FifoTaskManagerImpl Ʊ
- * Υǡ˥()ʤΤǤǤk 
+ * これは CellTaskManagerImpl から呼ばれる。
+ * BufferManager は共用で使うので引数に。
+ * CellTaskManagerImpl と FifoTaskManagerImpl が同時に
+ * 上のデータにアクセスする事は(今は)ないのでこれでおk 
  */
 void
 FifoTaskManagerImpl::init(MainScheduler *_sched, BufferManager *buff)
@@ -57,12 +57,12 @@
 }
 
 /**
- * 塼Ϥ TaskList 롣
+ * スケジューラに渡す TaskList を取得する。
  *
- * @return ¹ԥꥹ
+ * @return 実行タスクリスト
  *
- * ActiveTaskQueue (¸Ѥ) Υ
- * ¹ԥꥹȤ
+ * ActiveTaskQueue (依存条件は満たし済み) のタスクを
+ * 実行タスクリストに入れる
  */
 TaskListPtr
 FifoTaskManagerImpl::get_runTaskList(void)
@@ -70,18 +70,18 @@
     TaskListPtr list, list_top;
     TaskQueuePtr queue;
     TaskQueuePtr d;
-    HTaskPtr htask; // HTask (PPE ˤ)
-    TaskPtr task; // Task (SPE  Task)
+    HTaskPtr htask; // HTask (PPE にある)
+    TaskPtr task; // Task (SPE に送る Task)
 
     queue = activeTaskQueue;
     if (queue == NULL) {
 	return NULL;
     }
 
-    // PPE ¦Ǽ¹Ԥ TaskList
+    // PPE 側で実行される TaskList
     list_top = mainTaskList;
 
-    // list_top->clear() Ȥ⤷
+    // list_top->clear() とかの方がいいかもしれん。
     list_top = bufferManager->clear_taskList(list_top);
     list = list_top;
 
@@ -126,41 +126,41 @@
     list = get_runTaskList();
 
     do {
-	// list ¹Ԥ
+	// list を実行する
 	mail = schedule(list);
 
-	// mail ˤϡppe scheduler  mail 
+	// mail には、ppe scheduler からの mail がある
 	mail_check(mail);
 
-	// ¸طΤϼ¹Բǽ塼
+	// 依存関係を満たしたものは実行可能キューへ
 	wakeup_waitTask();
 	list = get_runTaskList();
     } while (list);
 }
 
 /**
- * @param [list] ¹ԥꥹ
- * @return FifoScheduler Υ᡼
+ * @param [list] 実行タスクリスト
+ * @return FifoScheduler からのメール
  *
- * [Tasklist] -> [ʼ] -> scheduler->run ȴ
+ * [Tasklist] -> [番兵] -> scheduler->run を抜ける
  */
 MailQueuePtr
 FifoTaskManagerImpl::schedule(TaskListPtr list)
 {
     MailQueuePtr list_mail; // task list
-    MailQueuePtr sentinel;  // ʼ
+    MailQueuePtr sentinel;  // 番兵
     MailQueuePtr in_mail_list = NULL;
     MailQueuePtr out_mail_list = NULL;
 
-    // TaskList Υɥ쥹
+    // TaskList のアドレス
     list_mail =	mailManager->create((unsigned int)list);
     in_mail_list = MailManager::append_mailQueue(in_mail_list, list_mail);
 
-    // EXIT_COMMAND (ʼŪʰ̣)
+    // EXIT_COMMAND (番兵的な意味で)
     sentinel  = mailManager->create(MY_SPE_COMMAND_EXIT);
     in_mail_list = MailManager::append_mailQueue(in_mail_list, sentinel);
     
-    // scheduler ϼä᡼򸵤˼¹Ԥ
+    // scheduler は受け取ったメールを元に実行する
     scheduler->send_mailList(in_mail_list);
     scheduler->run();
     out_mail_list = scheduler->recv_mailList(); 
@@ -169,14 +169,14 @@
 }
 
 /**
- * PPE Scheduler Υ᡼å
+ * PPE Scheduler からのメールをチェックする
  *
  * @param [mail_list]
- *        PPE ¦ư Scheduler Υ᡼ꥹ
- *        λ Task 䡢¾(ϤޤƤʤ)ξäƤ
+ *        PPE 側で動く Scheduler からのメールリスト
+ *        終了した Task や、その他(今はまだ実装してないけど)の情報が入ってる
  *
- * @return Scheduler ˼¹Ԥ Task List                       
- *         NULL ʤƤΥ¹ԽλȤ
+ * @return Scheduler が次に実行する Task List                       
+ *         NULL なら全てのタスクが実行終了したということ
  */
 void
 FifoTaskManagerImpl::mail_check(MailQueuePtr mail_list)
@@ -189,13 +189,13 @@
 	data = q->data;
 
 	/**
-	 * MY_SPE_STATUS_READY: SPE äƤ Task ƽλ
-	 * MY_SPE_NOP: ä˰̣Τʤޥ
-	 * ʳλ(PPEˤΤǥɥ쥹
+	 * MY_SPE_STATUS_READY: SPE が持ってた Task 全て終了
+	 * MY_SPE_NOP: 特に意味のないコマンド
+	 * それ以外:終了したタスク(PPEにあるのでアドレス
 	 *
-	 * MY_SPE_NOP  0 ʤΤǡ
-	 * Τ褦 data > MY_SPE_NOP ȤƤޤ
-	 * ܤǤ褯狼ʤʤǡľȤǤ
+	 * MY_SPE_NOP が 0 なので、
+	 * 下のように data > MY_SPE_NOP とかしています。
+	 * 一目でよくわからない書き方なんで、直したいところですが。。。
 	 */
 	if (data == MY_SPE_STATUS_READY) {
 	    __debug_ppe("mail_check(): Task List finish\n");
@@ -225,9 +225,9 @@
 }
 
 /**
- * Ȥ
+ * こういう使い方を
  *   Abstract Factory Pattern
- * Ȥ餷
+ * というらしい。
  */
 #ifdef __CERIUM_FIFO__
 TaskManagerImpl* 
--- a/TaskManager/Fifo/MainScheduler.cc	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Fifo/MainScheduler.cc	Wed Jun 10 15:23:25 2009 +0900
@@ -17,8 +17,8 @@
 }
 
 /**
- * PPE TaskManager  TaskList 䤽¾ޥɤǼ줿
- * ᡼륭塼Ƥ
+ * PPE TaskManager から TaskList やその他コマンドが格納された
+ * メールキューが送られてくる
  */
 void
 MainScheduler::send_mailList(MailQueuePtr mail_list)
@@ -28,8 +28,8 @@
 }
 
 /**
- * PPE TaskManager  Task νλ䤽¾ޥɤǼ줿
- * ᡼륭塼
+ * PPE TaskManager が、 Task の終了やその他コマンドが格納された
+ * メールキューを受け取る
  */
 MailQueuePtr
 MainScheduler::recv_mailList(void)
@@ -49,8 +49,8 @@
 
 
 /**
- * ᥤΰ allocate 롣
- * Fifo С顢ޤ̤ malloc Ǥk
+ * メインメモリ領域を allocate する。
+ * Fifo バージョンだから、まあ普通に malloc でおk
  */
 void
 MainScheduler::mainMem_alloc(int id, int size)
@@ -60,11 +60,11 @@
 
 #if 0
 /**
- * MainScheduler.h ˽񤤤Ƥޤ
+ * MainScheduler.h に書いてます
  */ 
 void
 MainScheduler::mainMem_wait(void)
 {
-    // ⤷ͤ
+    // 何もしねえ
 }
 #endif
--- a/TaskManager/Makefile.cell	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Makefile.cell	Wed Jun 10 15:23:25 2009 +0900
@@ -4,8 +4,28 @@
 SPETARGET = libspemanager.a
 
 CELL_SPE_DIR  = $(IMPL_CELL_DIR)/spe
-CELL_SPE_SRCS = $(wildcard $(CELL_SPE_DIR)/*.cc)
-CELL_SPE_OBJS = $(CELL_SPE_SRCS:.cc=.o)
+
+CELL_SPE_SCHEDULE_SRC = $(CELL_SPE_DIR)/SchedExit.cc       \
+    $(CELL_SPE_DIR)/SchedNop2Ready.cc  \
+    $(CELL_SPE_DIR)/SchedTaskList.cc \
+    $(CELL_SPE_DIR)/SchedMail.cc       \
+    $(CELL_SPE_DIR)/SchedTask.cc       \
+    $(CELL_SPE_DIR)/Scheduler.cc\
+    $(CELL_SPE_DIR)/SchedNop.cc        \
+    $(CELL_SPE_DIR)/TaskGroup.cc
+CELL_SPE_SCHEDULE_OBJ = $(CELL_SPE_SCHEDULE_SRC:.cc=.o)
+
+CELL_SPE_SRCS =  \
+    $(CELL_SPE_DIR)/CellDmaManager.cc   \
+    $(CELL_SPE_DIR)/TaskList.cc \
+    $(CELL_SPE_DIR)/CellScheduler.cc    \
+    $(CELL_SPE_DIR)/TaskQueue.cc \
+    $(CELL_SPE_DIR)/Task.cc            \
+    $(CELL_SPE_DIR)/main.cc
+
+# $(wildcard $(CELL_SPE_DIR)/*.cc)
+
+CELL_SPE_OBJS = $(CELL_SPE_SRCS:.cc=.o) $(CELL_SPE_SCHEDULE_OBJ)
 
 SPUCC = spu-g++
 
@@ -14,7 +34,8 @@
 SPE_CFLAGS = -fno-exceptions -fno-rtti
 
 all: default
-default: $(TARGET) $(SPETARGET)
+
+default: $(CELL_SPE_SCHEDULE_SRC)  $(TARGET) $(SPETARGET)
 
 PPE_ALL_OBJS = $(KERN_MAIN_OBJS) $(KERN_PPE_OBJS) $(KERN_SCHED_OBJS) $(KERN_SYSTASK_OBJS) $(IMPL_CELL_OBJS)
 
@@ -27,6 +48,9 @@
 $(SPETARGET): $(CELL_SPE_OBJS)
 	ar crus $@ $(CELL_SPE_OBJS)
 
+$(CELL_SPE_SCHEDULE_SRC): kernel/schedule/*.cc
+	cp kernel/schedule/*.cc $(CELL_SPE_DIR)/
+
 $(CELL_SPE_OBJS): %.o : %.cc
 	$(SPUCC) $(CFLAGS) $(SPE_CFLAGS) $(INCLUDE) -c $< -o $@
 
@@ -35,5 +59,8 @@
 	rm -f $(SPETARGET)
 
 cellclean:
-	rm -f $(CELL_SPE_OBJS)
-	cd $(CELL_SPE_DIR); rm -f *~ \#*
+	rm -f $(CELL_SPE_OBJS) $(CELL_SPE_SCHEDULE_SRC)
+	(cd $(CELL_SPE_DIR); rm -f *~ \#*)
+
+
+
--- a/TaskManager/Test/simple_pack/main.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/simple_pack/main.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -59,8 +59,8 @@
 }
 
 
-// 饹ؿñ˥ݥ󥿤ǰʤΤ
-// ϴŪ˸Ƥ֤Ȥ
+// クラス関数は単純にポインタで扱えないので
+// 現状は間接的に呼ぶことに
 int sdl_init(void *r, void *w)
 {
     __debug("[%s]\n", __FUNCTION__);
@@ -119,8 +119,8 @@
 
     task_initialize();
 
-    // ϡdlsym ߤʤΤȤ
-    // ŪʤĤϤǤʤ
+    // 本当は、dlsym みたいなものを使いたいんだけど
+    // 静的なやつはできないん?
     manager->set_symbol("init", (void*)init);
     manager->set_symbol("sdl_init", (void*)sdl_init);
     manager->set_symbol("zRow_init", (void*)zRow_init);
@@ -150,9 +150,9 @@
 	}
     }
 
-    // ֺǽ˹Ԥ init Ѥ task_run äƤ⤤ɡ
-    // ξϰȤ꤫ޤ argc, argv 
-    // ¤ΤǸꤷƤϤʤ
+    // 一番最初に行われる init 専用の task_run があってもいいけど。。
+    // その場合は引数とか固定か。まあ引数は argc, argv を持つ
+    // 構造体で固定しても問題はない・・・か?
     HTaskPtr task_init;
     int fd_init;
     initArg = new struct init_arg;
--- a/TaskManager/Test/simple_pack/span.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/simple_pack/span.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -5,7 +5,7 @@
 using namespace std;
 
 
-// f1:x$B$NA}2CNL(B  f2:y$B$NA}2CNL(B  i:.......    base:$B4pK\$H$J$kD:E@$N(By$B:BI8(B
+// f1:xの増加量  f2:yの増加量  i:.......    base:基本となる頂点のy座標
 static float calc(float f1, float f2,int i, float base){
 	float ans;
 	ans = f1/f2*i + base;
@@ -78,7 +78,7 @@
 	int end_y   = (int)vMin->y;
 	
 	if (start_y<end_y) { 
-	    int i; i=end_y; end_y=start_y; start_y = i;   //y$B$NF~$lBX$((B 
+	    int i; i=end_y; end_y=start_y; start_y = i;   //yの入れ替え 
 	    //Vertex *v; v = vMin; vMin = vMid; vMid = v;	
 	    /*
 	      incli_x1 = vMin->x - vMid->x; incli_x2 = vMin->x - vMid1->x;
@@ -96,13 +96,13 @@
 
 	//if(div_y < 1 && div_y > -1) div_y = 1;
 	for(i = k; i < div_y+1; i++) {
-		//$B$3$3$G(Bspan$B$N:8C<$H1&C<$N(Bx,z$B$r5a$a$F$k(B
+		//ここでspanの左端と右端のx,zを求めてる
 		tmp_xpos = calc(vMid1->x - vMin->x ,div_y, i, vMin->x);
 		tmp_end =  calc(vMid->x  - vMin->x ,div_y, i, vMin->x);	
 		tmp_z =    calc(vMid1->z - vMin->z ,div_y, i, vMin->z);
 	   	tmp_zpos = calc(vMid->z  - vMin->z ,div_y, i, vMin->z);
 		//printf("x:%f end:%f z:%f zpos:%f\n",tmp_xpos,tmp_end,tmp_z,tmp_zpos);
-		//$B$3$3$+$i(Bspan$B$N:8C<$H1&C<$KBP1~$9$k%F%/%9%A%c$r7W;;$9$k(B
+		//ここからspanの左端と右端に対応するテクスチャを計算する
 		tmp_tex1 =((i/(div_y)) * vMid1->tex_x) + \
 			   ( ((div_y - i)/(div_y)) * vMin->tex_x); 
 		tmp_tex2 =( (i/(div_y)) * vMid->tex_x) + \
@@ -113,7 +113,7 @@
 		tmp_tey2 =( (i/(div_y)) * vMid->tex_y) + \
 			   ( ((div_y - i)/(div_y)) * vMin->tex_y); 
 
-		//$B$3$3$G:8C<$,(Bxpos$B$+(Bend$B$rH=CG$7!"IA2h$9$k(Bspan$B$r:n$k(B
+		//ここで左端がxposかendを判断し、描画するspanを作る
 		if(tmp_xpos > tmp_end) {
 			x = (int)tmp_end;
 			y = (int)vMin->y + i*l;
@@ -236,13 +236,13 @@
 	if(div_y < 1 && div_y > -1) div_y = 1;
 
 	for(i = 0; i < div_x+1; i++) {
-		//$B$3$3$G(Bspan$B$N:8C<$H1&C<$N(Bx,z$B$r5a$a$F$k(B
+		//ここでspanの左端と右端のx,zを求めてる
 		tmp_xpos = calc(vMax->x - vMin->x,div_y, i, vMin->x);
 		tmp_end =  calc(vMid->x - vMin->x,div_x, i, vMin->x);	
 		tmp_z =    calc(vMax->z - vMin->z,div_y, i, vMin->z);
 	   	tmp_zpos = calc(vMid->z - vMin->z,div_x, i, vMin->z);
 
-		//$B$3$3$+$i(Bspan$B$N:8C<$H1&C<$KBP1~$9$k%F%/%9%A%c$r7W;;$9$k(B
+		//ここからspanの左端と右端に対応するテクスチャを計算する
 		tmp_tex1 =( (i/(div_y)) * vMax->tex_x) + \
 			   ( ((div_y - i)/(div_y)) * vMin->tex_x); 
 		tmp_tex2 =( (i/(div_x)) * vMid->tex_x) + \
@@ -253,7 +253,7 @@
 		tmp_tey2 =( (i/(div_x)) * vMid->tex_y) + \
 			   ( ((div_x - i)/(div_x)) * vMin->tex_y); 
 
-		//$B$3$3$G:8C<$,(Bxpos$B$+(Bend$B$rH=CG$7!"IA2h$9$k(Bspan$B$r:n$k(B
+		//ここで左端がxposかendを判断し、描画するspanを作る
 		if(tmp_xpos > tmp_end) {
 			x = (int)tmp_end;
 			y = (int)vMin->y + i;
@@ -315,7 +315,7 @@
 	if(div_y < 1 && div_y > -1) div_y = 1;
 	
 	for(i = 0; i < div_x; i++) {
-		//$B$3$3$G(Bspan$B$N:8C<$H1&C<$N(Bx,z$B$r5a$a$F$k(B
+		//ここでspanの左端と右端のx,zを求めてる
 		tmp_xpos = calc(vMax->x-vMin->x, div_y, (i+1+top_triangle), vMin->x);
 		tmp_end =  calc(vMax->x-vMid->x, div_x, (i+1), vMid->x);	
 		tmp_z =    calc(vMax->z-vMin->z, div_y, (i+1+top_triangle), vMin->z);
@@ -389,7 +389,7 @@
 #endif
 }
 
-// i:$BJ,;R!"(Bf1:$BD9$5(B   f2:$BBP1~$9$kD:E@(B1    f3:$BBP1~$9$kD:E@(B2
+// i:分子、f1:長さ   f2:対応する頂点1    f3:対応する頂点2
 /*
 float Span::calc2(int i, float f1, float f2, float f3) {
 	float ans;
--- a/TaskManager/Test/simple_pack/task/update_sgp.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/simple_pack/task/update_sgp.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -16,7 +16,7 @@
 
 	node = &sgp->node[i];
 
-	// ϡϾ my_func ǹԤ
+	// 本当は、ここは上の my_func で行う
 	y_angle = node->angle[1];
 	y_angle += 1.0f;
 	if (y_angle > 360.0f) y_angle = 0.0f;
@@ -36,9 +36,9 @@
 	}
     }
 
-    // ޤ¿ʬܤʤɡ
-    // in/out  update ʬɬפ롩
-    // ϥ桼¦ in/out ˤʤ褦˽񤫤Ρ
+    // まあこれは多分駄目なんだけど。
+    // in/out と update は分ける必要ある?
+    // それはユーザ側で in/out になるように書かせるもの?
     memcpy(_sgp, sgp, sizeof(SceneGraphPack));
   
     return sizeof(SceneGraphPack);
--- a/TaskManager/Test/simple_render/SpanC.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/simple_render/SpanC.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -5,7 +5,7 @@
 using namespace std;
 
 
-// f1:x$B$NA}2CNL(B  f2:y$B$NA}2CNL(B  i:.......    base:$B4pK\$H$J$kD:E@$N(By$B:BI8(B
+// f1:xの増加量  f2:yの増加量  i:.......    base:基本となる頂点のy座標
 static float calc(float f1, float f2,int i, float base){
 	float ans;
 	ans = f1/f2*i + base;
@@ -78,7 +78,7 @@
 	int end_y   = (int)vMin->y;
 	
 	if (start_y<end_y) { 
-	    int i; i=end_y; end_y=start_y; start_y = i;   //y$B$NF~$lBX$((B 
+	    int i; i=end_y; end_y=start_y; start_y = i;   //yの入れ替え 
 	    //Vertex *v; v = vMin; vMin = vMid; vMid = v;	
 	    /*
 	      incli_x1 = vMin->x - vMid->x; incli_x2 = vMin->x - vMid1->x;
@@ -96,13 +96,13 @@
 
 	//if(div_y < 1 && div_y > -1) div_y = 1;
 	for(i = k; i < div_y+1; i++) {
-		//$B$3$3$G(Bspan$B$N:8C<$H1&C<$N(Bx,z$B$r5a$a$F$k(B
+		//ここでspanの左端と右端のx,zを求めてる
 		tmp_xpos = calc(vMid1->x - vMin->x ,div_y, i, vMin->x);
 		tmp_end =  calc(vMid->x  - vMin->x ,div_y, i, vMin->x);	
 		tmp_z =    calc(vMid1->z - vMin->z ,div_y, i, vMin->z);
 	   	tmp_zpos = calc(vMid->z  - vMin->z ,div_y, i, vMin->z);
 		//printf("x:%f end:%f z:%f zpos:%f\n",tmp_xpos,tmp_end,tmp_z,tmp_zpos);
-		//$B$3$3$+$i(Bspan$B$N:8C<$H1&C<$KBP1~$9$k%F%/%9%A%c$r7W;;$9$k(B
+		//ここからspanの左端と右端に対応するテクスチャを計算する
 		tmp_tex1 =((i/(div_y)) * vMid1->tex_x) + \
 			   ( ((div_y - i)/(div_y)) * vMin->tex_x); 
 		tmp_tex2 =( (i/(div_y)) * vMid->tex_x) + \
@@ -113,7 +113,7 @@
 		tmp_tey2 =( (i/(div_y)) * vMid->tex_y) + \
 			   ( ((div_y - i)/(div_y)) * vMin->tex_y); 
 
-		//$B$3$3$G:8C<$,(Bxpos$B$+(Bend$B$rH=CG$7!"IA2h$9$k(Bspan$B$r:n$k(B
+		//ここで左端がxposかendを判断し、描画するspanを作る
 		if(tmp_xpos > tmp_end) {
 			x = (int)tmp_end;
 			y = (int)vMin->y + i*l;
@@ -236,13 +236,13 @@
 	if(div_y < 1 && div_y > -1) div_y = 1;
 
 	for(i = 0; i < div_x+1; i++) {
-		//$B$3$3$G(Bspan$B$N:8C<$H1&C<$N(Bx,z$B$r5a$a$F$k(B
+		//ここでspanの左端と右端のx,zを求めてる
 		tmp_xpos = calc(vMax->x - vMin->x,div_y, i, vMin->x);
 		tmp_end =  calc(vMid->x - vMin->x,div_x, i, vMin->x);	
 		tmp_z =    calc(vMax->z - vMin->z,div_y, i, vMin->z);
 	   	tmp_zpos = calc(vMid->z - vMin->z,div_x, i, vMin->z);
 
-		//$B$3$3$+$i(Bspan$B$N:8C<$H1&C<$KBP1~$9$k%F%/%9%A%c$r7W;;$9$k(B
+		//ここからspanの左端と右端に対応するテクスチャを計算する
 		tmp_tex1 =( (i/(div_y)) * vMax->tex_x) + \
 			   ( ((div_y - i)/(div_y)) * vMin->tex_x); 
 		tmp_tex2 =( (i/(div_x)) * vMid->tex_x) + \
@@ -253,7 +253,7 @@
 		tmp_tey2 =( (i/(div_x)) * vMid->tex_y) + \
 			   ( ((div_x - i)/(div_x)) * vMin->tex_y); 
 
-		//$B$3$3$G:8C<$,(Bxpos$B$+(Bend$B$rH=CG$7!"IA2h$9$k(Bspan$B$r:n$k(B
+		//ここで左端がxposかendを判断し、描画するspanを作る
 		if(tmp_xpos > tmp_end) {
 			x = (int)tmp_end;
 			y = (int)vMin->y + i;
@@ -315,7 +315,7 @@
 	if(div_y < 1 && div_y > -1) div_y = 1;
 	
 	for(i = 0; i < div_x; i++) {
-		//$B$3$3$G(Bspan$B$N:8C<$H1&C<$N(Bx,z$B$r5a$a$F$k(B
+		//ここでspanの左端と右端のx,zを求めてる
 		tmp_xpos = calc(vMax->x-vMin->x, div_y, (i+1+top_triangle), vMin->x);
 		tmp_end =  calc(vMax->x-vMid->x, div_x, (i+1), vMid->x);	
 		tmp_z =    calc(vMax->z-vMin->z, div_y, (i+1+top_triangle), vMin->z);
@@ -389,7 +389,7 @@
 #endif
 }
 
-// i:$BJ,;R!"(Bf1:$BD9$5(B   f2:$BBP1~$9$kD:E@(B1    f3:$BBP1~$9$kD:E@(B2
+// i:分子、f1:長さ   f2:対応する頂点1    f3:対応する頂点2
 /*
 float Span::calc2(int i, float f1, float f2, float f3) {
 	float ans;
--- a/TaskManager/Test/simple_render/fb.h	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/simple_render/fb.h	Wed Jun 10 15:23:25 2009 +0900
@@ -46,7 +46,7 @@
 	int xres,yres,vbpp,line_len;
 	//unsigned short tcolor ;
 
-	/* ɤ߽Ѥ˥ե򳫤 */
+	/* 読み書き用にファイルを開く */
 	fd_framebuffer = open( DEVICE_NAME , O_RDWR);
 	if ( !fd_framebuffer ) {
 		send_current_error_msg("Framebuffer device open error !");
@@ -54,13 +54,13 @@
 	}
 	send_current_information("The framebuffer device was opened !");
 
-	/* ꥹ꡼ */
+	/* 固定スクリーン情報取得 */
 	if ( ioctl( fd_framebuffer , FBIOGET_FSCREENINFO , &finfo ) ) {
 		send_current_error_msg("Fixed information not gotton !");
 		exit(2);
 	}
 
-	/* ư꡼ */
+	/* 変動スクリーン情報取得 */
 	if ( ioctl( fd_framebuffer , FBIOGET_VSCREENINFO , &vinfo ) ) {
 		send_current_error_msg("Variable information not gotton !");
 		exit(3);
@@ -72,10 +72,10 @@
 	sprintf( tmp , "%d(pixel)x%d(line), %dbpp(bits per pixel)",xres,yres,vbpp);
 	send_current_information( tmp );
 
-	/* Хñ̤ǤΥ꡼Υ׻ */
+	/* バイト単位でのスクリーンのサイズを計算 */
 	screensize = xres * yres * vbpp / DIV_BYTE ;
 
-	/* ǥХ˥ޥåפ */
+	/* デバイスをメモリにマップする */
 	fbptr = (char *)mmap(0,screensize,PROT_READ | PROT_WRITE,MAP_SHARED,fd_framebuffer,0);
 	if ( (int)fbptr == -1 ) {
 		send_current_error_msg("Don't get framebuffer device to memory !");
--- a/TaskManager/Test/simple_render/main.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/simple_render/main.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -9,8 +9,8 @@
 
 #include "error.h"
 
-// Ȥľ
-// Ǥ褦
+// あとで直す
+// 引数からできるように
 #define SPENUM 6
 
 /* prototype */
@@ -33,8 +33,8 @@
 struct init_arg *initArg;
 
 
-// 饹ؿñ˥ݥ󥿤ǰʤΤ
-// ϴŪ˸Ƥ֤Ȥ
+// クラス関数は単純にポインタで扱えないので
+// 現状は間接的に呼ぶことに
 int run_loop(void *r, void *w)
 {
     __debug("[%s] start\n", __FUNCTION__);
--- a/TaskManager/Test/simple_render/spe/CreatePolygonPack.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/simple_render/spe/CreatePolygonPack.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -89,7 +89,7 @@
      abc[2] = xyz[2];
      abc[3] = xyz[3];
     
-     // SIMD Ȥ
+     // SIMD 使えるよね
      for (int i=0; i<4; i++)
      {
 	  xyz[i] = abc[0]*matrix[i] + abc[1]*matrix[i+4]
--- a/TaskManager/Test/simple_render/spe/SpuDraw.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/simple_render/spe/SpuDraw.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -12,21 +12,21 @@
 
 #define PIXELSIZE 11520 //32 line pixel size
 
-// ʤ PPE Ǥ
+// 本来なら PPE から受け取る情報です
 #define FRAMEBUFFER_X 1920
 #define FRAMEBUFFER_Y 1080
 
-// IMG_MAX_X x 8 spe Ƥ 
-// ߡ1920x8 zBuf ϻƤʤ
+// IMG_MAX_X x 8 が、spe が持てる 最大
+// 現在、1920x8の zBuf は持てない
 #define IMG_MAX_X 720
 
 #define SPAN_PACK_LOAD 20
 
 /**
- * SpanPack ˤ Span  y ɸ
+ * SpanPack にある Span が持つ y 座標は
  * .. [-16 ~ -9] [-8 ~ -1] [0 ~ 7] [8 ~ 16] ..
- * Τɤ줫ζ褦 Pack Ƥ롣
- * sp->span[0].y 顢ζΰ־ y ɸ롣
+ * のどれかの区域に入るように Pack されている。
+ * sp->span[0].y から、その区域の一番上の y 座標を求める。
  */
 #define YTOP(y) (y &~(TEXTURE_SPLIT_PIXEL-1))
 #define YOFF(y) (y & (TEXTURE_SPLIT_PIXEL-1))
@@ -45,9 +45,9 @@
 
      linebuf = (int*)memalign(DEFAULT_ALIGNMENT, sizeof(int)*x*y);
 #if 1
-     // memset  1 ХȤफ
-     // 0x12345678 ȤϤƤ 0x12 (0x78ä) Ǥ
-     // ʤʡ
+     // memset は 1 バイトで描き込むから
+     // 0x12345678 とか渡しても 0x12 (0x78だったかな) でしか
+     // 描かないんだなー
      memset(linebuf, rgb, sizeof(int)*x*y);
      //bzero(linebuf, sizeof(int)*x*y);
 #else
@@ -123,7 +123,7 @@
     SpanPack *sp = (SpanPack*)rbuf;
     SpanPack *next_sp = (SpanPack*)memalign(16, sizeof(SpanPack));
 
-    SpanPack *free_sp = next_sp; // free()
+    SpanPack *free_sp = next_sp; // free()用
     SpanPack *tmp_sp = NULL;
     unsigned int fbdev_addr = task->out_addr;
     Span *span;
@@ -143,9 +143,9 @@
      //render_y += FRAMEBUFFER_Y/2;
 
      if (sp->info.size < 0) {
-	 // ɤĤ֤Span
-	 // ȤǤ٤
-	 // षClass Ǻ
+	 // 塗りつぶしSpan
+	 // あとでちゃんと定義すべし
+	 // むしろ別Class で作る方がいいか。
 	 linebuf_rgb = 0xffffff;
 	 linebuf_init(linebuf_rgb);
 	 goto WRITE;
@@ -157,9 +157,9 @@
 
 
      /**
-      * SpanPack->next ¸ߤ礬ͭΤ
-      * ߤ SpanPack Ƥ֤
-      *  SpanPack  DMA žԤäƤޤ
+      * SpanPack->next が存在する場合が有るので
+      * 現在の SpanPack を処理してる間に
+      * 次の SpanPack の DMA 転送を行っています
       */
      do {
 	 if (sp->next != NULL) {
@@ -238,9 +238,9 @@
     int end_y;
     int start_y;
 
-    // ̾ΰޤʤ褦
-    // ʤѤʡ
-    // Ȥꤢ if ʸɤˤ褦
+    // 画面上の領域に描き込まないように
+    // ・・・なんか変だな。
+    // とりあえず if 文どうにかしようぜ俺
     
     if (y < 0) {
 	if (y + TEXTURE_SPLIT_PIXEL < 0) {
@@ -252,7 +252,7 @@
 	start_y = 0;
     }
 
-    // ̲ΰ˽񤭹ޤʤ褦
+    // 画面下の領域に書き込まないように
     end_y = FRAMEBUFFER_Y - y + TEXTURE_SPLIT_PIXEL;
     end_y = (end_y < 0) ? TEXTURE_SPLIT_PIXEL + end_y : TEXTURE_SPLIT_PIXEL;
     
--- a/TaskManager/Test/simple_render/task/create_span.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/simple_render/task/create_span.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -16,7 +16,7 @@
 {
     int d, d1;
 
-    // float2int ΥޥȤ񤯡
+    // float2int のマクロとか書く?
 #if 0
     d  = (int)vMax->y - (int)vMin->y;
     d1 = (int)vMid->y - (int)vMin->y;
@@ -99,8 +99,8 @@
 	    end_tex_y = tmp_tey2;
 	}
 
-	// ̳ΤΤϤ
-	// ȽäƤΤʡ
+	// 画面外のものはここで
+	// この判定で当たってるのかな?
 #if 0
 	real_x = x + Viewer::width/2;
 	real_y = y + Viewer::height/2;
@@ -164,12 +164,12 @@
 
 	SpanPack *spack = &ssl->list[spu_no].packs[spp_no];
 
-	//  Span ϥ롼
+	// 既に Span がある場合はスルー
 	if (spack->info.size > 0) continue;
 
-	// ɤĤ֤ Span  info.size = -1
+	// 塗りつぶし用 Span は info.size = -1
 	//
-	// äƤȤˤɡ狼Ť餤
+	// ってことにしたけど、わかりづらいか・・・・
 	spack->info.size = -1;
 	Span *span = &spack->span[0];
 	span->y = y;
--- a/TaskManager/Test/simple_render/task/span_pack_draw.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/simple_render/task/span_pack_draw.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -71,9 +71,9 @@
     int end_y;
     int start_y;
 
-    // ̾ΰޤʤ褦
-    // ʤѤʡ
-    // Ȥꤢ if ʸɤˤ褦
+    // 画面上の領域に描き込まないように
+    // ・・・なんか変だな。
+    // とりあえず if 文どうにかしようぜ俺
     if (y < 0) {
 	if (y + TEXTURE_SPLIT_PIXEL < 0) {
             return;
@@ -84,14 +84,14 @@
         start_y = 0;
     }
 
-    // ̲ΰ˽񤭹ޤʤ褦
-    // äƤȤ start_y ɬפ
+    // 画面下の領域に書き込まないように
+    // ってことは start_y も必要か。
     end_y = FRAMEBUFFER_Y - y + TEXTURE_SPLIT_PIXEL;
     end_y = (end_y < 0) ? TEXTURE_SPLIT_PIXEL + end_y : TEXTURE_SPLIT_PIXEL;
     
-    // ܲ write_pixel Ǥϡ y  y = height -y ˤƤ롣
-    // ȡŪˡ y++  ˿ʤ褦ˤʤ롣
-    // Ǥ⡢framebuffer Ͼ夫鲼 y++ ˤʤ뤫顢𤷤
+    // 本家 write_pixel では、 y を y = height -y にしている。
+    // こうすると、画面的に、 y++ すると 上に進むようになる。
+    // でも、framebuffer は上から下で y++ になるから、混乱しそう
     for (int i = start_y; i < end_y; i++) {
 	memcpy((void*)(fbdev_addr + (4*FRAMEBUFFER_X*(y+i))),
 	       &linebuf[i*IMG_MAX_X], sizeof(int)*IMG_MAX_X);
@@ -126,11 +126,11 @@
     zRow_init();
 
     do {
-	//  pack 
-	// ߤ pack ν򤷤Ƥ֤
-	// DMA ǥɤƤ뤫ʡ
+	// 次の pack があれば
+	// 現在の pack の処理をしている間に
+	// DMA でロードしておく。入るかな・・・
 	if (spack->next != NULL) {
-	    // Cell ǤϤʴ
+	    // Cell ではこんな感じ?
 	    // dma_load(next_spack, spack->next, sizeof(SpanPack));
 	    next_spack = spack->next;
 	} else {
@@ -186,7 +186,7 @@
 	    }
 	}
 
-	// Cell ǤϤʴ
+	// Cell ではこんな感じ?
 	// dma_wait(SPAN_PACK_LOAD);
 	spack = next_spack;
     } while (spack);
--- a/TaskManager/Test/simple_render/task/task_init.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/simple_render/task/task_init.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -14,7 +14,7 @@
 extern int dummy(void* wbuf, void *rbuf);
 
 /**
- * set_cpu(CPU_PPE) ư task
+ * set_cpu(CPU_PPE) で動作する task
  */
 void
 task_initialize()
--- a/TaskManager/Test/simple_render/task/update_sgp.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/simple_render/task/update_sgp.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -15,7 +15,7 @@
     SceneGraphNodePtr node;
     float y_angle;
 
-    // ϤǤ󤸤ʤ
+    // 本当はここでやるもんじゃないんだが。。。
     static float dest_x = 0.3f;
     static float dest_y = 0.5f;
 
@@ -27,7 +27,7 @@
 
 	node = &sgp->node[i];
 
-	// ϡϾ my_func ǹԤ
+	// 本当は、ここは上の my_func で行う
 	y_angle = node->angle[1];
 	y_angle += 1.0f;
 	if (y_angle > 360.0f) y_angle = 0.0f;
@@ -60,9 +60,9 @@
 	}
     }
 
-    // ޤ¿ʬܤʤɡ
-    // in/out  update ʬɬפ롩
-    // ϥ桼¦ in/out ˤʤ褦˽񤫤Ρ
+    // まあこれは多分駄目なんだけど。
+    // in/out と update は分ける必要ある?
+    // それはユーザ側で in/out になるように書かせるもの?
     memcpy(_sgp, sgp, sizeof(SceneGraphPack));
   
     return sizeof(SceneGraphPack);
--- a/TaskManager/Test/simple_render/test/LoadTexture/polygon.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/simple_render/test/LoadTexture/polygon.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -100,7 +100,7 @@
 	
 	memcpy(_pixels, texture_image->pixels, 3*128*128);
 
-	// screen ֤ɡĤ free 
+	// screen を返すけど、いつか free して
 	//screen = SDL_CreateRGBSurfaceFrom(_pixels, width, height, 32,
 	//width*4, redMask, greenMask,
 	//			  blueMask,alphaMask);
--- a/TaskManager/Test/simple_render/viewer_types.h	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/simple_render/viewer_types.h	Wed Jun 10 15:23:25 2009 +0900
@@ -3,8 +3,8 @@
 
 #define SPE_NUM_MAX 6
 
-// texture  8x8 ʬ
-// ʤѿ̾Ǥ󤫤
+// texture は 8x8 に分割
+// なんか変数名、これでいいんかい?
 #define TEXTURE_SPLIT_PIXEL 8
 //#define TEXTURE_SPLIT_PIXEL 4
 
--- a/TaskManager/Test/test_render/Makefile	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/Makefile	Wed Jun 10 15:23:25 2009 +0900
@@ -1,14 +1,14 @@
 default: macosx
 
-macosx: FORCE
+macosx: FORCE SGList.h
 	@echo "Make for Mac OS X"
 	@$(MAKE) -f Makefile.macosx
 
-cell: FORCE
+cell: FORCE SGList.h
 	@echo "Make for PS3 (Cell)"
 	@$(MAKE) -f Makefile.cell
 
-linux: FORCE
+linux: FORCE SGList.h
 	@echo "Make for Linux"
 	@$(MAKE) -f Makefile.linux
 
@@ -27,4 +27,15 @@
 	@$(MAKE) -f Makefile.macosx clean
 	@$(MAKE) -f Makefile.cell clean
 	@$(MAKE) -f Makefile.linux clean
-	rm -f depend.inc
\ No newline at end of file
+	rm -f depend.inc
+
+SGList.h: xml_file/*.xml
+	perl tools/create_sglist.pl xml_file/*.xml 
+
+run-ps3:
+	ps3-video-mode -v 133
+	./test_nogl -video fb -width 1980 -height 1080
+
+run-ps3tv:
+	./test_nogl -video fb -width 576 -height 384 -bpp 32
+
--- a/TaskManager/Test/test_render/Makefile.cell	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/Makefile.cell	Wed Jun 10 15:23:25 2009 +0900
@@ -25,8 +25,8 @@
 
 all: $(TARGET) speobject
 
-$(TARGET): SGList.o $(OBJS) $(TASK_OBJS)
-	$(CC) -o $@ SGList.o $(OBJS) $(TASK_OBJS) $(LIBS)
+$(TARGET): $(OBJS) $(TASK_OBJS)
+	$(CC) -o $@ $(OBJS) $(TASK_OBJS) $(LIBS)
 
 SGList.o: create_sg_list
 	$(CC) $(CFLAGS) $(INCLUDE) -c SGList.cpp -o $@
@@ -42,6 +42,9 @@
 
 run: $(TARGET)
 	sudo ./$(TARGET) -width 576 -height 384 -bpp 32
+run-hd: $(TARGET)
+	sudo /usr/sbin/ps3-video-mode -v 133
+	sudo ./$(TARGET) -video fb -width 1920 -height 1080 -bpp 32
 
 debug: $(TARGET)
 	sudo ppu-gdb ./$(TARGET) 
--- a/TaskManager/Test/test_render/Makefile.macosx	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/Makefile.macosx	Wed Jun 10 15:23:25 2009 +0900
@@ -21,10 +21,10 @@
 .cpp.o:
 	$(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@
 
-all: $(TARGET)
+all: SGList.o $(TARGET)
 
-$(TARGET): SGList.o $(OBJS) $(TASK_OBJS)
-	$(CC) -o $@ SGList.o $(OBJS) $(TASK_OBJS) $(LIBS)
+$(TARGET): $(OBJS) $(TASK_OBJS)
+	$(CC) -o $@ $(OBJS) $(TASK_OBJS) $(LIBS)
 
 
 SGList.o: create_sg_list
@@ -52,4 +52,4 @@
 	rm -f *~ \#*
 	rm -f SGList.h SGList.cpp
 
--include depend.inc
\ No newline at end of file
+-include depend.inc
--- a/TaskManager/Test/test_render/SGList.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/SGList.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -1,5 +1,5 @@
 #include "SGList.h"
 
 const char *sglist_table[SGLIST_LENGTH] = {
-    "Ball", "LongCube", "Venus000", "Venus001", "Venus002", "Venus008", "Venus003", "Venus007", "Venus006", "Venus004", "Venus005", "Venus009", "Cube", "BigCube", "Plane", "SmallCube", "Diry", "Dirz", "Dirx", "IEBOSS", "IEJIKI", "IETAMA", "MCUBE_BACK", "MCUBE", "BIGMCUBE", "CUBE", "PANEL_1024", "PANEL_2048", "PANEL_512", "BACK", "BULEBULLET", "E_PLANE", "IDLE", "Sphere", "BigSphere", "Earth", "Moon"
+    "Ball", "LongCube", "Venus000", "Venus001", "Venus002", "Venus008", "Venus003", "Venus007", "Venus006", "Venus004", "Venus005", "Venus009", "BLAST8", "BLAST7", "BLAST6", "BLAST5", "BLAST4", "BLAST3", "BLAST2", "BLAST1", "BOSS1", "BOSS1_L", "BOSS1_R", "Cube", "BigCube", "Plane", "SmallCube", "Diry", "Dirz", "Dirx", "IEBOSS", "IEJIKI", "IETAMA", "MCUBE_BACK", "MCUBE", "BIGMCUBE", "CUBE", "P_SHOT1", "PANEL_1024", "PANEL_2048", "PANEL_512", "BACK", "BULEBULLET", "E_PLANE", "IDLE", "PLAYER", "PLAYER_L", "PLAYER_LL", "PLAYER_R", "PLAYER_RR", "Sphere", "BigSphere", "Earth", "Moon"
 };
--- a/TaskManager/Test/test_render/SGList.h	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/SGList.h	Wed Jun 10 15:23:25 2009 +0900
@@ -1,13 +1,13 @@
 #ifndef INCLUDED_SGLIST
 #define INCLUDED_SGLIST
 
-/* ../xml_file/Ball.xml */
+/* xml_file/Ball.xml */
 #define Ball	 0
 
-/* ../xml_file/LongCube.xml */
+/* xml_file/LongCube.xml */
 #define LongCube	 1
 
-/* ../xml_file/Venus.xml */
+/* xml_file/Venus.xml */
 #define Venus000	 2
 #define Venus001	 3
 #define Venus002	 4
@@ -19,63 +19,88 @@
 #define Venus005	 10
 #define Venus009	 11
 
-/* ../xml_file/cube.xml */
-#define Cube	 12
+/* xml_file/blast.xml */
+#define BLAST8	 12
+#define BLAST7	 13
+#define BLAST6	 14
+#define BLAST5	 15
+#define BLAST4	 16
+#define BLAST3	 17
+#define BLAST2	 18
+#define BLAST1	 19
 
-/* ../xml_file/cube_big.xml */
-#define BigCube	 13
+/* xml_file/boss1.xml */
+#define BOSS1	 20
+#define BOSS1_L	 21
+#define BOSS1_R	 22
 
-/* ../xml_file/cube_split.xml */
-#define Plane	 14
-#define SmallCube	 15
+/* xml_file/cube.xml */
+#define Cube	 23
 
-/* ../xml_file/direction.xml */
-#define Diry	 16
-#define Dirz	 17
-#define Dirx	 18
+/* xml_file/cube_big.xml */
+#define BigCube	 24
+
+/* xml_file/cube_split.xml */
+#define Plane	 25
+#define SmallCube	 26
 
-/* ../xml_file/ieboss.xml */
-#define IEBOSS	 19
+/* xml_file/direction.xml */
+#define Diry	 27
+#define Dirz	 28
+#define Dirx	 29
 
-/* ../xml_file/iejiki.xml */
-#define IEJIKI	 20
+/* xml_file/ieboss.xml */
+#define IEBOSS	 30
 
-/* ../xml_file/ietama.xml */
-#define IETAMA	 21
+/* xml_file/iejiki.xml */
+#define IEJIKI	 31
+
+/* xml_file/ietama.xml */
+#define IETAMA	 32
 
-/* ../xml_file/mcube.xml */
-#define MCUBE_BACK	 22
-#define MCUBE	 23
-#define BIGMCUBE	 24
-#define CUBE	 25
+/* xml_file/mcube.xml */
+#define MCUBE_BACK	 33
+#define MCUBE	 34
+#define BIGMCUBE	 35
+#define CUBE	 36
+
+/* xml_file/p_shot.xml */
+#define P_SHOT1	 37
 
-/* ../xml_file/panel_1024.xml */
-#define PANEL_1024	 26
+/* xml_file/panel_1024.xml */
+#define PANEL_1024	 38
 
-/* ../xml_file/panel_2048.xml */
-#define PANEL_2048	 27
+/* xml_file/panel_2048.xml */
+#define PANEL_2048	 39
 
-/* ../xml_file/panel_512.xml */
-#define PANEL_512	 28
+/* xml_file/panel_512.xml */
+#define PANEL_512	 40
 
-/* ../xml_file/player.xml */
-#define BACK	 29
-#define BULEBULLET	 30
-#define E_PLANE	 31
-#define IDLE	 32
+/* xml_file/player.xml */
+#define BACK	 41
+#define BULEBULLET	 42
+#define E_PLANE	 43
+#define IDLE	 44
 
-/* ../xml_file/sphere.xml */
-#define Sphere	 33
+/* xml_file/player1.xml */
+#define PLAYER	 45
+#define PLAYER_L	 46
+#define PLAYER_LL	 47
+#define PLAYER_R	 48
+#define PLAYER_RR	 49
 
-/* ../xml_file/sphere_big.xml */
-#define BigSphere	 34
+/* xml_file/sphere.xml */
+#define Sphere	 50
 
-/* ../xml_file/universe.xml */
-#define Earth	 35
-#define Moon	 36
+/* xml_file/sphere_big.xml */
+#define BigSphere	 51
+
+/* xml_file/universe.xml */
+#define Earth	 52
+#define Moon	 53
 
 /* Number of Scene */
-#define SGLIST_LENGTH 37
+#define SGLIST_LENGTH 54
 
 /* Scene Table */
 extern const char *sglist_table[SGLIST_LENGTH];
--- a/TaskManager/Test/test_render/SpanC.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/SpanC.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -5,7 +5,7 @@
 using namespace std;
 
 
-// f1:x$B$NA}2CNL(B  f2:y$B$NA}2CNL(B  i:.......    base:$B4pK\$H$J$kD:E@$N(By$B:BI8(B
+// f1:xの増加量  f2:yの増加量  i:.......    base:基本となる頂点のy座標
 static float calc(float f1, float f2,int i, float base){
 	float ans;
 	ans = f1/f2*i + base;
@@ -78,7 +78,7 @@
 	int end_y   = (int)vMin->y;
 	
 	if (start_y<end_y) { 
-	    int i; i=end_y; end_y=start_y; start_y = i;   //y$B$NF~$lBX$((B 
+	    int i; i=end_y; end_y=start_y; start_y = i;   //yの入れ替え 
 	    //Vertex *v; v = vMin; vMin = vMid; vMid = v;	
 	    /*
 	      incli_x1 = vMin->x - vMid->x; incli_x2 = vMin->x - vMid1->x;
@@ -96,13 +96,13 @@
 
 	//if(div_y < 1 && div_y > -1) div_y = 1;
 	for(i = k; i < div_y+1; i++) {
-		//$B$3$3$G(Bspan$B$N:8C<$H1&C<$N(Bx,z$B$r5a$a$F$k(B
+		//ここでspanの左端と右端のx,zを求めてる
 		tmp_xpos = calc(vMid1->x - vMin->x ,div_y, i, vMin->x);
 		tmp_end =  calc(vMid->x  - vMin->x ,div_y, i, vMin->x);	
 		tmp_z =    calc(vMid1->z - vMin->z ,div_y, i, vMin->z);
 	   	tmp_zpos = calc(vMid->z  - vMin->z ,div_y, i, vMin->z);
 		//printf("x:%f end:%f z:%f zpos:%f\n",tmp_xpos,tmp_end,tmp_z,tmp_zpos);
-		//$B$3$3$+$i(Bspan$B$N:8C<$H1&C<$KBP1~$9$k%F%/%9%A%c$r7W;;$9$k(B
+		//ここからspanの左端と右端に対応するテクスチャを計算する
 		tmp_tex1 =((i/(div_y)) * vMid1->tex_x) + \
 			   ( ((div_y - i)/(div_y)) * vMin->tex_x); 
 		tmp_tex2 =( (i/(div_y)) * vMid->tex_x) + \
@@ -113,7 +113,7 @@
 		tmp_tey2 =( (i/(div_y)) * vMid->tex_y) + \
 			   ( ((div_y - i)/(div_y)) * vMin->tex_y); 
 
-		//$B$3$3$G:8C<$,(Bxpos$B$+(Bend$B$rH=CG$7!"IA2h$9$k(Bspan$B$r:n$k(B
+		//ここで左端がxposかendを判断し、描画するspanを作る
 		if(tmp_xpos > tmp_end) {
 			x = (int)tmp_end;
 			y = (int)vMin->y + i*l;
@@ -236,13 +236,13 @@
 	if(div_y < 1 && div_y > -1) div_y = 1;
 
 	for(i = 0; i < div_x+1; i++) {
-		//$B$3$3$G(Bspan$B$N:8C<$H1&C<$N(Bx,z$B$r5a$a$F$k(B
+		//ここでspanの左端と右端のx,zを求めてる
 		tmp_xpos = calc(vMax->x - vMin->x,div_y, i, vMin->x);
 		tmp_end =  calc(vMid->x - vMin->x,div_x, i, vMin->x);	
 		tmp_z =    calc(vMax->z - vMin->z,div_y, i, vMin->z);
 	   	tmp_zpos = calc(vMid->z - vMin->z,div_x, i, vMin->z);
 
-		//$B$3$3$+$i(Bspan$B$N:8C<$H1&C<$KBP1~$9$k%F%/%9%A%c$r7W;;$9$k(B
+		//ここからspanの左端と右端に対応するテクスチャを計算する
 		tmp_tex1 =( (i/(div_y)) * vMax->tex_x) + \
 			   ( ((div_y - i)/(div_y)) * vMin->tex_x); 
 		tmp_tex2 =( (i/(div_x)) * vMid->tex_x) + \
@@ -253,7 +253,7 @@
 		tmp_tey2 =( (i/(div_x)) * vMid->tex_y) + \
 			   ( ((div_x - i)/(div_x)) * vMin->tex_y); 
 
-		//$B$3$3$G:8C<$,(Bxpos$B$+(Bend$B$rH=CG$7!"IA2h$9$k(Bspan$B$r:n$k(B
+		//ここで左端がxposかendを判断し、描画するspanを作る
 		if(tmp_xpos > tmp_end) {
 			x = (int)tmp_end;
 			y = (int)vMin->y + i;
@@ -315,7 +315,7 @@
 	if(div_y < 1 && div_y > -1) div_y = 1;
 	
 	for(i = 0; i < div_x; i++) {
-		//$B$3$3$G(Bspan$B$N:8C<$H1&C<$N(Bx,z$B$r5a$a$F$k(B
+		//ここでspanの左端と右端のx,zを求めてる
 		tmp_xpos = calc(vMax->x-vMin->x, div_y, (i+1+top_triangle), vMin->x);
 		tmp_end =  calc(vMax->x-vMid->x, div_x, (i+1), vMid->x);	
 		tmp_z =    calc(vMax->z-vMin->z, div_y, (i+1+top_triangle), vMin->z);
@@ -389,7 +389,7 @@
 #endif
 }
 
-// i:$BJ,;R!"(Bf1:$BD9$5(B   f2:$BBP1~$9$kD:E@(B1    f3:$BBP1~$9$kD:E@(B2
+// i:分子、f1:長さ   f2:対応する頂点1    f3:対応する頂点2
 /*
 float Span::calc2(int i, float f1, float f2, float f3) {
 	float ans;
--- a/TaskManager/Test/test_render/enemy_action.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/enemy_action.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -31,7 +31,7 @@
   if(judge == HIT)
     {
       E_PLANE->set_move_collision(null_move, enemy_collision);
-      printf("ENEMY_hit!!!_n");
+      printf("ENEMY_hit!!!\n");
       //scene_graph->delete_object(node, node->next,node->prev);
     }
 #endif
--- a/TaskManager/Test/test_render/fb.h	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/fb.h	Wed Jun 10 15:23:25 2009 +0900
@@ -31,7 +31,7 @@
 	int xres,yres,vbpp,line_len;
 	//unsigned short tcolor ;
 
-	/* ɤ߽Ѥ˥ե򳫤 */
+	/* 読み書き用にファイルを開く */
 	fd_framebuffer = open( DEVICE_NAME , O_RDWR);
 	if ( !fd_framebuffer ) {
 	    send_current_error_msg("Framebuffer device open error !");
@@ -39,13 +39,13 @@
 	}
 	send_current_information("The framebuffer device was opened !");
 	
-	/* ꥹ꡼ */
+	/* 固定スクリーン情報取得 */
 	if ( ioctl( fd_framebuffer , FBIOGET_FSCREENINFO , &finfo ) ) {
 	    send_current_error_msg("Fixed information not gotton !");
 	    exit(2);
 	}
 
-	/* ư꡼ */
+	/* 変動スクリーン情報取得 */
 	if ( ioctl( fd_framebuffer , FBIOGET_VSCREENINFO , &vinfo ) ) {
 		send_current_error_msg("Variable information not gotton !");
 		exit(3);
@@ -57,10 +57,10 @@
 	sprintf( tmp , "%d(pixel)x%d(line), %dbpp(bits per pixel)",xres,yres,vbpp);
 	send_current_information( tmp );
 
-	/* Хñ̤ǤΥ꡼Υ׻ */
+	/* バイト単位でのスクリーンのサイズを計算 */
 	screensize = xres * yres * vbpp / DIV_BYTE ;
 
-	/* ǥХ˥ޥåפ */
+	/* デバイスをメモリにマップする */
 	fbptr = (char *)mmap(0,screensize,PROT_READ | PROT_WRITE,MAP_SHARED,fd_framebuffer,0);
 	if ( (int)fbptr == -1 ) {
 		send_current_error_msg("Don't get framebuffer device to memory !");
--- a/TaskManager/Test/test_render/spe/CreatePolygon.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/spe/CreatePolygon.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -4,6 +4,9 @@
  * だめだったら、そこら辺が怪しいと思うべき
  */
 
+#define DEBUG
+#include "error.h"
+
 #include "CreatePolygon.h"
 #include "polygon_pack.h"
 #include "scene_graph_pack.h"
@@ -37,6 +40,8 @@
 int 
 CreatePolygon::run(void *rbuf, void *wbuf)
 {
+    __debug_spe("CreatePolygon\n");
+
     float xyz1[4],xyz2[4],xyz3[4];
 
     SceneGraphPackPtr sgp = (SceneGraphPack*)smanager->get_input(0);
--- a/TaskManager/Test/test_render/spe/CreateSpan.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/spe/CreateSpan.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -1,3 +1,5 @@
+#define DEBUG
+#include "error.h"
 #include "CreateSpan.h"
 #include "viewer_types.h"
 
@@ -291,9 +293,11 @@
 	    if (spack->info.size >= MAX_SIZE_SPAN) {
 		SpanPackPtr next;
 		
+	__debug_spe("CreateSpan mainMem_alloc 0x%x\n", (unsigned int)sizeof(SpanPack));
 		smanager->mainMem_alloc(0, sizeof(SpanPack));
 		smanager->mainMem_wait();
 		next = (SpanPackPtr)smanager->mainMem_get(0);
+	__debug_spe("CreateSpan mainMem_allocated 0x%x\n", (unsigned int)next);
 		
 		spack->next = next; // この部分は TaskManager でやる
 
@@ -408,6 +412,8 @@
 int
 CreateSpan::run(void *rbuf, void *wbuf)
 {
+    __debug_spe("CreateSpan\n");
+
     PolygonPack *pp = (PolygonPack*)smanager->get_input(0);
     PolygonPack *next_pp = 
 	(PolygonPack*)smanager->allocate(sizeof(PolygonPack));
@@ -432,6 +438,8 @@
     int charge_y_end = get_param(2);
 
     do {
+	__debug_spe("CreateSpan allocated 0x%x\n",(uint32)next_pp);
+
 	if (pp->next != NULL) {
 	    smanager->dma_load(next_pp, (uint32)pp->next,
 			       sizeof(PolygonPack), POLYGON_PACK_LOAD);
@@ -486,6 +494,7 @@
     smanager->dma_store(spack, (uint32)spackList[prev_index],
 			sizeof(SpanPack), SPAN_PACK_STORE);
     smanager->dma_wait(SPAN_PACK_STORE);
+	__debug_spe("CreateSpan spack_stored 0x%x\n",(uint32)spackList[prev_index]);
 
     // smanager で allocate したのだから free も smanager でやるべき
     free(free_pp);
--- a/TaskManager/Test/test_render/spe/DrawBack.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/spe/DrawBack.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -1,3 +1,6 @@
+#define DEBUG
+#include "error.h"
+
 #include <stdlib.h>
 #include <string.h>
 #include "DrawBack.h"
@@ -16,6 +19,7 @@
 int
 DrawBack::run(void *rbuf, void *wbuf)
 {
+    __debug_spe("DrawBack\n");
     int rgb          = smanager->get_param(0);
     int rangex_start = smanager->get_param(1);
     int rangex_end   = smanager->get_param(2);
--- a/TaskManager/Test/test_render/spe/DrawSpan.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/spe/DrawSpan.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -1,3 +1,6 @@
+#define DEBUG
+#include "error.h"
+
 #include <stdlib.h>
 #include <string.h>
 #include <spu_intrinsics.h>
@@ -557,6 +560,7 @@
 int
 DrawSpan::run(void *rbuf, void *wbuf)
 {
+    __debug_spe("DrawSpan\n");
     SpanPackPtr spack = (SpanPackPtr)smanager->get_input(0);
     SpanPackPtr next_spack = (SpanPackPtr)smanager->allocate(sizeof(SpanPack));
     SpanPackPtr free_spack = next_spack; // next_spack の free() 用
--- a/TaskManager/Test/test_render/spe/DrawSpanRenew.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/spe/DrawSpanRenew.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -1,3 +1,6 @@
+#define DEBUG
+#include "error.h"
+
 #include <stdlib.h>
 #include <string.h>
 #include <spu_mfcio.h>
@@ -26,24 +29,25 @@
     renew_task->add_param((int)curr);
     renew_task->add_param(cur_span_x);
 
-    // linebuf  zRow Ѥ
+    // linebuf と zRow も引き継がせる
     renew_task->add_param((int)linebuf);
     renew_task->add_param((int)zRow);
 
     //fprintf(stderr, "[%p] start %u\n", curr, spu_readch(SPU_RdDec));
 
     /**
-     * ƵưԤ
+     * 再起動したタスクを待つ
      */ 
     smanager->wait_task(renew_task);
 
-    // next_spack  free() Τ wait 
+    // next_spack は free() するので wait する
     smanager->dma_wait(SPAN_PACK_LOAD);
 }
 
 int
 DrawSpanRenew::run(void *rbuf, void *wbuf)
 {
+    __debug_spe("DrawSpanRenew\n");
     SpanPackPtr spack = (SpanPackPtr)smanager->get_param(1);
     SpanPackPtr next_spack = (SpanPackPtr)smanager->allocate(sizeof(SpanPack));
     SpanPackPtr free_spack1 = spack;
@@ -56,10 +60,10 @@
     int rangex_start = args->rangex_start;
     int rangex_end   = args->rangex_end;
 
-    // Υô x ϰ
+    // このタスクが担当する x の範囲
     int rangex = rangex_end - rangex_start + 1;
 
-    // y ϰ (render_y + rangey - 1)
+    // y の範囲 (render_y + rangey - 1)
     int rangey = args->rangey;
 
     hash = (TileHashPtr)smanager->global_get(GLOBAL_TEXTURE_HASH);
@@ -70,7 +74,7 @@
 
     doneWrite = 0;
 
-    // span->length_x νǤκƵư
+    // span->length_x の処理での再起動位置
     int js_cont = smanager->get_param(2);
 
     //fprintf(stderr, "[%p] end   %u\n", spack, spu_readch(SPU_RdDec));
@@ -79,9 +83,9 @@
 
     do {
 	/**
-	 * SpanPack->next ¸ߤ硢
-	 * ߤ SpanPack Ƥ֤
-	 *  SpanPack  DMA žԤ
+	 * SpanPack->next が存在する場合、
+	 * 現在の SpanPack を処理してる間に
+	 * 次の SpanPack の DMA 転送を行う
 	 */
 	if (spack->next != NULL) {
 	    smanager->dma_load(next_spack, (uint32)spack->next,
@@ -100,15 +104,15 @@
 	    float tey2 = span->tex_y2;
 
 	    /**
-	     * Span  1 pixel 
-	     * ƥκɸ
+	     * Span が持つ 1 pixel 毎の
+	     * テクスチャの座標
 	     */
 	    int tex_xpos;
 	    int tex_ypos;
 
 	    /**
-	     * (tex_xpos, tex_ypos) Ρ֥å(ο޻)Ǥκɸ
-	     * Υ֥åΥɥ쥹(MainMemory)
+	     * (tex_xpos, tex_ypos) の、ブロック内(上の図参照)での座標と
+	     * そのブロックのアドレス(MainMemory)
 	     */
 	    int tex_localx;
 	    int tex_localy;
@@ -120,7 +124,7 @@
 	    float z = span->start_z;
 	    float zpos = span->end_z;
 
-	    // ɸ [0 .. split_screen_w-1] 褦 x,y  -1
+	    // 座標が [0 .. split_screen_w-1] に入るように x,y を -1
 	    int localx = getLocalX(x-1);
 	    int localy = getLocalY(y-1);
 
@@ -154,9 +158,9 @@
 		float tex_x, tex_y, tex_z;
 		
 		/**
-		 * ӤСʸƵưޤǤ
-		 * js_cont ϻȤʤ 0 ˤƤ櫓ɡ
-		 * ǽΰΤˤϤɤΡ
+		 * 一回比較すれば、以後再起動するまでは
+		 * js_cont は使わないから 0 にしてるわけだけど、
+		 * 最初の一回のためだけにこれはめんどくさいのー。
 		 */
 		js = (js < js_cont) ? js_cont : js;
 		js_cont = 0;
@@ -217,7 +221,7 @@
     free(args);
 
     /**
-     * linebuf, zRow, args  RenewTask Ѥ
+     * linebuf, zRow, args は RenewTask が引き継ぐ
      */
     free(free_spack1);
     free(free_spack2);
--- a/TaskManager/Test/test_render/spe/Load_Texture.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/spe/Load_Texture.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -1,3 +1,6 @@
+#define DEBUG
+#include "error.h"
+
 #include <stdlib.h>
 #include <string.h>
 #include "Load_Texture.h"
@@ -14,6 +17,7 @@
 int 
 LoadTexture::run(void *rbuf , void *wbuf) 
 {
+    __debug_spe("LoadTexture\n");
     /**
      * 現在 global_alloc() では new をサポートしてないので
      * コンストラクタ呼ぶために placement new してます。
--- a/TaskManager/Test/test_render/spe/Set_Texture.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/spe/Set_Texture.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -1,3 +1,6 @@
+#define DEBUG
+#include "error.h"
+
 #include <string.h>
 #include "Set_Texture.h"
 #include "texture.h"
@@ -8,6 +11,7 @@
 int 
 SetTexture::run(void *rbuf, void *wbuf)
 {
+    __debug_spe("SetTexture\n");
     void *src[4];
     
     src[0] = get_input(rbuf, 0);
--- a/TaskManager/Test/test_render/task/DrawSpan.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/task/DrawSpan.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -266,12 +266,6 @@
 DrawSpan::updateBuffer(float zpos, int rangex, int x, int y, int tex_x, int tex_y, 
                        float normal_x, float normal_y, float normal_z, uint32 *tex_addr)
 {
-<<<<<<< local
-    int rgb = get_rgb(tex_x, tex_y, tex_addr);
-		    
-    zRow[x + (rangex*y)] = zpos;
-    linebuf[x + (rangex*y)] = rgb;
-=======
 
     int color = get_rgb(tex_x, tex_y, tex_addr);
     /*下位4bitを抽出*/
@@ -284,7 +278,6 @@
     zRow[x + (rangex*y)] = zpos*flag + zRow[x + (rangex*y)]*(1-flag);
     linebuf[x + (rangex*y)] = color*flag + linebuf[x + (rangex*y)]*(1-flag);
 
->>>>>>> other
 }
 
 /**
--- a/TaskManager/Test/test_render/task/DrawSpanRenew.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/task/DrawSpanRenew.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -25,18 +25,18 @@
     renew_task->add_param((int)curr);
     renew_task->add_param(cur_span_x);
 
-    // linebuf  zRow Ѥ
+    // linebuf と zRow も引き継がせる
     renew_task->add_param((int)linebuf);
     renew_task->add_param((int)zRow);
 
     //fprintf(stderr, "[%p] start %u\n", curr, spu_readch(SPU_RdDec));
 
     /**
-     * ƵưԤ
+     * 再起動したタスクを待つ
      */ 
     smanager->wait_task(renew_task);
 
-    // next_spack  free() Τ wait 
+    // next_spack は free() するので wait する
     smanager->dma_wait(SPAN_PACK_LOAD);
 }
 
@@ -55,10 +55,10 @@
     int rangex_start = args->rangex_start;
     int rangex_end   = args->rangex_end;
 
-    // Υô x ϰ
+    // このタスクが担当する x の範囲
     int rangex = rangex_end - rangex_start + 1;
 
-    // y ϰ (render_y + rangey - 1)
+    // y の範囲 (render_y + rangey - 1)
     int rangey = args->rangey;
 
     hash = (TileHashPtr)smanager->global_get(GLOBAL_TEXTURE_HASH);
@@ -69,7 +69,7 @@
 
     doneWrite = 0;
 
-    // span->length_x νǤκƵư
+    // span->length_x の処理での再起動位置
     int js_cont = smanager->get_param(2);
 
     //fprintf(stderr, "[%p] end   %u\n", spack, spu_readch(SPU_RdDec));
@@ -78,9 +78,9 @@
 
     do {
 	/**
-	 * SpanPack->next ¸ߤ硢
-	 * ߤ SpanPack Ƥ֤
-	 *  SpanPack  DMA žԤ
+	 * SpanPack->next が存在する場合、
+	 * 現在の SpanPack を処理してる間に
+	 * 次の SpanPack の DMA 転送を行う
 	 */
 	if (spack->next != NULL) {
 	    smanager->dma_load(next_spack, (uint32)spack->next,
@@ -99,15 +99,15 @@
 	    float tey2 = span->tex_y2;
 
 	    /**
-	     * Span  1 pixel 
-	     * ƥκɸ
+	     * Span が持つ 1 pixel 毎の
+	     * テクスチャの座標
 	     */
 	    int tex_xpos;
 	    int tex_ypos;
 
 	    /**
-	     * (tex_xpos, tex_ypos) Ρ֥å(ο޻)Ǥκɸ
-	     * Υ֥åΥɥ쥹(MainMemory)
+	     * (tex_xpos, tex_ypos) の、ブロック内(上の図参照)での座標と
+	     * そのブロックのアドレス(MainMemory)
 	     */
 	    int tex_localx;
 	    int tex_localy;
@@ -119,7 +119,7 @@
 	    float z = span->start_z;
 	    float zpos = span->end_z;
 
-	    // ɸ [0 .. split_screen_w-1] 褦 x,y  -1
+	    // 座標が [0 .. split_screen_w-1] に入るように x,y を -1
 	    int localx = getLocalX(x-1);
 	    int localy = getLocalY(y-1);
 
@@ -153,9 +153,9 @@
 		float tex_x, tex_y, tex_z;
 		
 		/**
-		 * ӤСʸƵưޤǤ
-		 * js_cont ϻȤʤ 0 ˤƤ櫓ɡ
-		 * ǽΰΤˤϤɤΡ
+		 * 一回比較すれば、以後再起動するまでは
+		 * js_cont は使わないから 0 にしてるわけだけど、
+		 * 最初の一回のためだけにこれはめんどくさいのー。
 		 */
 		js = (js < js_cont) ? js_cont : js;
 		js_cont = 0;
@@ -217,7 +217,7 @@
 
     //FINISH:
     /**
-     * linebuf, zRow, args  RenewTask Ѥ
+     * linebuf, zRow, args は RenewTask が引き継ぐ
      */
     free(free_spack1);
     free(free_spack2);
--- a/TaskManager/Test/test_render/task/task_init.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/task/task_init.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -17,7 +17,7 @@
 SchedExternTask(Dummy);
 
 /**
- * set_cpu(CPU_PPE) ư task
+ * set_cpu(CPU_PPE) で動作する task
  */
 void
 task_initialize()
--- a/TaskManager/Test/test_render/task/update_sgp.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/task/update_sgp.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -17,7 +17,7 @@
     //int screen_width = get_param(0);
     //int screen_height = get_param(1);
 
-    // ϤǤ󤸤ʤ
+    // 本当はここでやるもんじゃないんだが。。。
     for (int i = 0; i < sgp->info.size && i < 3; i++) {
 	node = &sgp->node[i];
 
--- a/TaskManager/Test/test_render/tools/create_sglist.pl	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/tools/create_sglist.pl	Wed Jun 10 15:23:25 2009 +0900
@@ -54,10 +54,14 @@
 ####################################
 
 use strict;
+#
+# to install this,
+# cpan -i XML::LibXML::SAX::Generator
+#
 use XML::LibXML;
 
-my $outfile_h = "../SGList.h";
-my $outfile_c = "../SGList.cpp";
+my $outfile_h = "SGList.h";
+my $outfile_c = "SGList.cpp";
 my $id = 0;
 my @table;
 
--- a/TaskManager/Test/test_render/viewer.cpp	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/viewer.cpp	Wed Jun 10 15:23:25 2009 +0900
@@ -94,6 +94,7 @@
 extern void init_position(int, int);
 extern void vacuum_init(int w, int h);
 extern void untitled_init(void);
+extern void boss1_init(int w, int h);
 void
 Viewer::run_init(const char *xml, int sg_number)
 {
@@ -141,6 +142,9 @@
     case 12:
         untitled_init();
         break;
+    case 13:
+	boss1_init(this->width, this->height);
+	break;
     default:
 	node_init();
 	break;
--- a/TaskManager/Test/test_render/viewer_types.h	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/Test/test_render/viewer_types.h	Wed Jun 10 15:23:25 2009 +0900
@@ -1,12 +1,12 @@
 #ifndef INCLUDED_VIEWER_TYPES
 #define INCLUDED_VIEWER_TYPES
 
-// texture  8x8 ʬ
-// ͤϡSpanPack ˤȤ
+// texture は 8x8 に分割
+// この値は、SpanPack にも使う
 const int TEXTURE_SPLIT_PIXEL = 8;
 const int TEXTURE_BLOCK_SIZE = TEXTURE_SPLIT_PIXEL*TEXTURE_SPLIT_PIXEL;
 
-// Ĥ SPE ô width, height (pixel)
+// 一個の SPE が描画担当する width, height (pixel)
 const int split_screen_w = 256;
 const int split_screen_h = 8;
 
--- a/TaskManager/kernel/main.cc	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/kernel/main.cc	Wed Jun 10 15:23:25 2009 +0900
@@ -3,6 +3,10 @@
 #include <SDL.h>
 #include "TaskManager.h"
 
+/*!
+  User が書いた TMmain() (*名前は固定) を実行する
+ */
+
 /* User main function */
 extern int TMmain(int argc, char *argv[]);
 
@@ -11,6 +15,11 @@
 defaultTMend(void) {}
 
 TaskManager *manager;
+
+/*!
+  const char *usr_help_str を User 側で指定する必要がある
+  -help で出力される文字列
+ */
 const char *help_str = "\n\
 * Cerium program option *\n\
   -help Print this message \n\
--- a/TaskManager/kernel/schedule/SchedTask.cc	Wed Jun 10 15:12:39 2009 +0900
+++ b/TaskManager/kernel/schedule/SchedTask.cc	Wed Jun 10 15:23:25 2009 +0900
@@ -67,7 +67,7 @@
 	free(__list);
     }
 
-    
+
 }
 
 /**