昔の最近の出来事(2014.06)

2014/06/30

今日はお休み。

AM中に起きて野暮用を済ませたり掃除したり。

ちょろり調べ事。

そういやNHK教育で火星に人を送るとしたとき、どんな課題をクリア しなくてはならないか?みたいな番組が放送されていたのを録画で見たり。 地球から火星までの航行期間は約1年、その間は持ち込んだ食料なり 資源循環させるなりで過ごせなくてはならなかったり。 現時点では、地球に帰る手段はまだ無いというのが一番の問題のようです。 資材と共にロボットを送り込んで、予め基地を建設するなどしておかないと 無理な気がします。仮に行けたとしても、人が暮らせるようになる事はない だろうと思います。

2014/06/29

昼過ぎ帰着。

TRIALS。ちっとも伸びず。

疲れてぐったり。

2014/06/28

プチ帰省のため早起きして出発。

2014/06/27

気持ち遅めに帰着。

ちょろり調べ事をして終了。

2014/06/26

気持ち遅めに帰着。

燃料電池車。水素を燃やした結果は水しか出ないのでしょうけど、 水素を作る過程では 化石燃料を使ったり、生成効率が悪かったりする ようです。

2014/06/25

早くも無く遅くも無く。

ちょっとだけTRIALS。全然ダメ。

2014/06/24

気持ち遅めに帰着。

調べ事をして終了。

2014/06/23

早くも無く遅くも無く。

TRIALS。イマイチ。

2014/06/22

昼頃起床。

TRIALS。全然ダメ。

調べ事をしていてたまたま見つけた、アウターワールドが海外PS4にて発売という 記事。 マジか。

2014/06/21

昼頃起床。

洗濯したり掃除したり。

ちょろりお出かけ。色々散在。

TRIASL。EXTREMEの一番最初のステージをどうにかクリアできたり(T^T)q そういやリトライ回数のカウントについて。スタートからゴールまでの 間にチェックポイントがあり、リトライは最後に通過したチェックポイント から再開されます。ここでリトライ回数が++1されます。なのですが、 スタート地点から最初のチェックポイントの間にクラッシュした場合は リトライ回数は++1されません。EXTREMEではスタート地点から最初の チェックポイントに到達できないというのが結構普通にある訳ですが、 リトライしても回数がインクリメントされていないので何故?と思ったら そういう事らしいです。しかも時間も00:00に戻るので、無限にやり直し て良いみたい。まぁ、その前に手の握力が無くなると思いますが(^^;

「オトメの帝国(6)」。山田姉妹?.....!苗字が同じな事に全く気づいていませんでした(^^;

2014/06/20

早めに帰着。

Segfaultの件を少しだけおいかけ。元々は空の連想配列変数に 最初の要素を追加する所でSegfaultしています。なのですが、 何かしらの理由で割り当て方がおかしくなっている模様。 そもそもivals.lengthで得られている長さも、ポインタっぽい 値を示しているので何か変です。さて、どうしたものか。

簡単なコードで再現できないか試してみたのですが、ちょっとした コードでは再現しませんでした。

久々にTRAIALS。驚くほど下手になっている気がしたり。 でも、少しやっていると勘が戻ってきた気も。EXTREMEの 一番最初のステージはクリアできそうな光が見えて来た気が。 でも500リトライ制限で終了。

2014/06/19

気持ち早めに帰着。

調べ事をして終了。

2014/06/18

気持ち早めに帰着。

先日のSegfaultを少し調べてみたり。以下のようなコードでSegfaultに なっていたのですが、

libphobos/src/std/internal/uni.d:412
  :
    size_t toHash() const pure nothrow @safe
    {
        size_t hash = 5381+7*ivals.length;
        if(!empty)
            hash = 31*ivals[0] + 17*ivals[$-1];     //この行を実行するとSegfault
        return hash;
    }

ずっこけ要素がイマイチ良くわからなかったり。オプティマイズアウト されている為か変数が全然参照できなかったので、試しに、

    size_t toHash() const pure nothrow @safe
    {
        size_t hash = 5381+7*ivals.length;
        if(!empty){
          size_t len=ivals.length;
          int    ival0=ivals[0] ;
          int    ivalL=ivals[$-1] ;
        }
        if(!empty)
            hash = 31*ivals[0] + 17*ivals[$-1];
        return hash;
    }

てな感じに書き換えて、-g -O0でコンパイルしてみたのですが、今度は 「int ival0=ivals[0] ;」を実行したらSegfault。配列 ivals が 壊れているようです。むむ、こうなると原因究明が急に難しくなった気が。

2014/06/17

早くも無く遅くも無く。

gdcのMinGWビルド。リンクでエラーしている関数を調べて対応してみたり。
一つは __mingw_strtold がリンク時に見つからないというもの。 libphobos/libdruntime/core/stdc/stdlib.d 内でMinGWの時は 「alias __mingw_strtold strtold」というaliasになっているのを コメントアウトしました。
もう一つはlibphobos/libdruntime/gcc/gthreads/win32.d 内で使用している InterlockedIncrement()が見つからないというもの。同ファイル内に 「extern (Windows) nothrow int InterlockedIncrement(int*);」という 宣言を入れました。

で、本題。gdcはコンパイルOKだったけどDMDではダメだったキャストの 仕方を探ったり。具体的にダメなのは以下のような感じ。

WindowBase wb = cast(WindowBase)(*(cast(size_t*)(lp))) ;

が、以下のようなコンパイルエラーとなります。

WindowBase.d:176: error: cannot cast *cast(uint*)lp of type uint to WindowBase.WindowBase

で、結論から言うと以下のように直せば良いだけでした。

WindowBase wb = cast(WindowBase)(cast(size_t *)(*(cast(size_t *)(lp)))) ;

で、過去ログを探ってみたところ、以前 今回の答えと同じ所に辿り着いていた事が判ったり(^^; 多分この時は DMDでコンパイルエラーしないものの、DMDではリンクができなかった為、これがOK かどうかが判らないので gdcで実績のある方で通したのかも。

で、Windowアプリの比較的簡単なのは動きました(^o^)v すばらしい! 変な事をやっているのはSegfaultでずっこけるのですが、一様にダメなので 何か原因があるのかも。

ビルドできたもののSegfaultでずっこけるものを少し調べてみたり。 どうやらstd.regexの中のハッシュに関連するアクセスで死んでいる みたい。

$ gdc -v
Using built-in specs.
COLLECT_GCC=C:\MinGW\gdc031_2065_490\bin\gdc.exe
COLLECT_LTO_WRAPPER=c:/mingw/gdc031_2065_490/bin/../libexec/gcc/mingw32/4.9.0/lto-wrapper.exe
Target: mingw32
Configured with: ../gcc-4.9.0/configure --build=mingw32 --with-arch=i686 --enable-languages=c,c++,d,lto --prefix=/mingw/gdc031_2065_490 --enable-threads --disable-nls --enable-sjlj-exceptions --disable-bootstrap
Thread model: win32
gcc version 4.9.0 (GCC)

〜〜〜〜〜〜〜〜〜

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 21316.0x51fc]
0x004a72c5 in std.internal.uni.CodepointSet.toHash() (this=...) at ../../../../gcc-4.9.0/libphobos/src/std/internal/uni.d:412
412	            hash = 31*ivals[0] + 17*ivals[$-1];
(gdb) where
#0  0x004a72c5 in std.internal.uni.CodepointSet.toHash() (this=...) at ../../../../gcc-4.9.0/libphobos/src/std/internal/uni.d:412
#1  0x0046fb43 in object.TypeInfo_Struct.getHash() (this=..., p=0x11ebe984) at ../../../../gcc-4.9.0/libphobos/libdruntime/object_.d:976
#2  0x00493bc6 in _aaGetX (aa=aa@entry=0x124e990, keyti=..., valuesize=valuesize@entry=20, pkey=pkey@entry=0x11ebe984) at ../../../../gcc-4.9.0/libphobos/libdruntime/rt/aaA.d:170
#3  0x0049d206 in std.regex.getTrie() (set=...) at ../../../../gcc-4.9.0/libphobos/src/std/regex.d:777
#4  0x0053cd52 in std.regex.__T6ParserTAyaZ.Parser.charsetToIr() (this=..., set=...) at c:/mingw/gdc031_2065_490/include/d/4.9.0/std/regex.d:1846
#5  0x0053d328 in std.regex.__T6ParserTAyaZ.Parser.parseEscape() (this=...) at c:/mingw/gdc031_2065_490/include/d/4.9.0/std/regex.d:1885
#6  0x00541b86 in std.regex.__T6ParserTAyaZ.Parser.parseAtom() (this=...) at c:/mingw/gdc031_2065_490/include/d/4.9.0/std/regex.d:1378
#7  0x0053c725 in std.regex.__T6ParserTAyaZ.Parser.parseRegex() (this=...) at c:/mingw/gdc031_2065_490/include/d/4.9.0/std/regex.d:1203
#8  0x0053f3eb in std.regex.__T6ParserTAyaZ.Parser.__T6__ctorTAxaZ.__ctor() (this=..., pattern=..., flags=...) at c:/mingw/gdc031_2065_490/include/d/4.9.0/std/regex.d:939
#9  0x00542b69 in std.regex.__T9regexImplTAyaZ.regexImpl() (pattern=..., flags=...) at c:/mingw/gdc031_2065_490/include/d/4.9.0/std/regex.d:5870
#10 0x004f8b63 in std.functional.__T7memoizeS83_D3std5regex18__T9regexImplTAyaZ9regexImplFNfAyaAxaZS3std5regex12__T5RegexTaZ5RegexVi8Z.memoize() (_param_0=..., _param_1=...) at c:/mingw/gdc031_2065_490/include/d/4.9.0/std/functional.d:608
#11 0x00538e5d in std.regex.__T5regexTAyaZ.regex() (pattern=..., flags=...) at c:/mingw/gdc031_2065_490/include/d/4.9.0/std/regex.d:5864
#12 0x00413bb0 in OBJ3D.OBJ3D.__ctor() (this=...) at OBJ3D.d:30
#13 0x0040d2ba in Sprite.Sprite.add3DPCG() (this=..., fname=..., pcgno=0, scale=0.10000000000000001) at Sprite.d:459
#14 0x004087f8 in myGameFrame.myGameFrame.GameLoop() (this=...) at myGameFrame.d:41
#15 0x004068cf in GameFrame.GameFrame.run() (this=...) at GameFrame.d:111
#16 0x0048e374 in run (this=...) at ../../../../gcc-4.9.0/libphobos/libdruntime/core/thread.d:1227
#17 thread_entryPoint@4 (arg=0x1590e80) at ../../../../gcc-4.9.0/libphobos/libdruntime/core/thread.d:200
#18 0x75f31287 in msvcrt!_itow_s () from /cygdrive/c/windows/syswow64/msvcrt.dll
#19 0x75f31328 in msvcrt!_endthreadex () from /cygdrive/c/windows/syswow64/msvcrt.dll
#20 0x75bf338a in KERNEL32!BaseThreadInitThunk () from /cygdrive/c/windows/syswow64/kernel32.dll
#21 0x77089f72 in ntdll!RtlInitializeExceptionChain () from /cygdrive/c/windows/system32/ntdll.dll
#22 0x77089f45 in ntdll!RtlInitializeExceptionChain () from /cygdrive/c/windows/system32/ntdll.dll
#23 0x00000000 in ?? ()
(gdb)

ずっこけるのはどれも 3Dモデルの読み込みクラスを実行していて、 同じクラスを使いまわしていますので、同じ所でSegfaultになってます。 普通にバグっている可能性があるかも。 しかしながら、どこで壊れているかが判らない 少し前のビルドに比べると 使える可能性がずっと高いように感じます。

2014/06/16

早くも無く遅くも無く。

gdcのMinGWビルド。gcc-4.9.0にも修正がマージされていたのでビルドを 試してみたり.......終わらず。
まだちょっと手を入れる必要がありましたが、ビルドは完了してみたり。 で、make installして 簡単なソースをコンパイルしてみたのですが、 リンクでエラー。
それよりも、手持ちのWindowsアプリコードで、 強引にキャストしている構文が とうとう通らなくなったり。 元々DMDでは通らなかったのですが、 DMDで通るような書き方を見つけられず今に至っていました。 どうしよう?

2014/06/15

昼前起床。

E3。ソフトメインでこれから色々出そうなのは楽しみな所だと思います。 ただ、PS3世代くらいから感じてるのですが、発売が1年以上先とか あまり にも未来過ぎるのはどうにかならんかなぁ?とは思います。 まぁ、基本的には業界関係者のイベントなので、そういうものなのかも 知れませんが。特にPS4は目先の新作が少ないのがイマイチ。日本の場合は 東京ゲームショーで色々出てくるのかも知れませんが、それもクリスマス シーズン以降がターゲットになるでしょうから、目先の新作が少ないのには 変わり無い訳で。

各ハードで出るゲームの色にも特徴が出ているように思います。 PS4,XboxOneは良くも悪くも洋寄りに、WiiUは 任天堂の自社色変わらず、 サードパーティーは和寄りという感じになってるかなと。
個人的に良くできてるなぁと思ったのは「Yoshi's Woolly World」。 毛糸のカービィと同じ所が作っているらしい。カービィの時も スゲーって思ったのですが、 ヨッシーのも質感や動いた時の映像表現が丁寧に作られててスゲーと 思います。PS4もLBP3が出ますが、こちらはなんて言うかPS3から質感が 上がっていないのがイマイチに思った所だったので、 ヨッシーのは余計に良く見えたのかも知れません。
あとは「Splatoon」。動的にポリゴンを塗っていくってのがなんかスゲー。 テクスチャーを差し替えている訳ではなく、液体っぽいモデルを配置している のかな?と思ったりするのですが、どちらにしても良くできてるなぁと 感じます。ただ、ゲームは対戦のみなのかしら? シングルプレイ のゲームにしようと思うと、どんなストーリーなる?とか、 既存のFPSと違ってターゲットを倒す事が勝敗に直結しない点を踏まえて AIどうする?とか、色々ありそう。
インディーズゲームも色々出るようですが、あまり大きく取り上げられていない 気も。こちらのサイト でまとめられていました(主にXboxOne向けみたいですが)。 どれだけのタイトルが日本向けに出るかは不明。逆に、この手の インディーズ作品を日本では作らないのかしら?とは思います。

gdc。 DMDへの追従は主にIain Buclawさんが行ってますが、 Linuxへのポートをメインに行っています。他のプラットホームへのポートは、 MinGWだと以前はVenix1さん(==DanielGreenさん)がメインで行って 行っていましたが、現在はJohannes Pfauさん(==jpf91さん)がmaster へのマージを積極的に行っているようです。で、先日試して色々手を 入れないと先に進めなかった所をJohannesさんが直しながら進めて いるようで、このままいくと恐らくTANEが先日引っかかったICE問題に ぶつかると推測されます。そんな訳で乗り越えてくれる事を期待 してみたり。

2014/06/14

AM中に起床。

MinGWでDMD2.065対応gdcをgcc-4.9.0ベースでビルドしていたのですが、 最終的な結果からいうと ICE(internal compiler error)でビルド失敗。 libphobos/libdruntime/core/sys/windows/stacktrace.dのコンパイルで ICEとなりました。うーむ。

Emacsでseconds-to-time関数内のround関数がエラーする件。 Cygwin本体のアップデート後、すぐにはエラーしませんでしたが、 数日単位で立ち上げていると(スタンバイ時間があるので厳密には 連続起動という訳ではありませんが)、まだエラーするようです。 ただ、1日数回だったのが 数日に1回というオーダーに減っている ので、Cygwin本体アップデート後にエラーしにくくなっているのは 確かなようです。

そういや、ふと rabbitと bunnyって何が違うんだ?と思って調べたり。 どうやら、rabbitはいわゆる動物としての兎という呼び方、bunnyは ウサちゃんというニュアンスの呼び方のようです。日本語だと、 「猫」と「にゃんこ」みたいな違いでしょうか。
また、ratと mouseの違いも同じ類みたいですが、英語圏の人には 明確な使い分けがあるようです。ratだと ドブ鼠のように害のあるニュアンスの鼠、mouseはハツカネズミのような 小型のかわいい感じのニュアンスのネズミという感じみたいです。 ミッキー・マウスがミッキー・ラットだと大分印象が変わる感じ なのでしょうか。ゲゲゲの鬼太郎に出てくる「ねすみ男」は、 「mouse man」よりは「rat man」の方が合っている感じなのかも。

gdcのmasterはgcc-4.10の開発版に追従しているので、gcc-4.9.0への マージは別の人が行っています。masterの方はちょこちょこ修正が 入っているようで、遅れて4.9.0に反映されている感じ。 MinGWでビルドに失敗する件は、masterの修正が収まるのを少し待って みることにしよう。

2014/06/13

少し早めに帰着。

gdcのDMD2.065対応版ですがgcc-4.9.0対応も来ていたり。 ひとまずFedoraの方でビルドを試したところ、エラー無くビルド完了。 手持ちコードを少し実行した感じでは問題無く使えそうな予感。

MinGWの方も試してみたり。ビルドが終わらず。

2014/06/12

早くも無く遅くも無く。

先日WindowsUpdateのついでにCygwinのパッケージアップデートも行いました。 そのためかどうかは判りませんが、Emacsでseconds-to-time関数内の round関数がエラーする件が出なくなったような気がしたり。 やっぱcygwin本体の問題だったんじゃなかろうか?と思ったり。 CygwinのMailingListでは再現の為にgdbの上で実行したら再現しない とか、結局原因不明で闇に葬られそうな予感。

先日、gdcにDMD2.065がマージされないのはなんでだろう?と書いた後に マージされたようです(^^; 週末に試してみよう。

2014/06/11

気持ち早めに帰着。

そういやD言語のgdcのフォーラムで、MinGWでgcc-4.9.0をビルドしてみたら __strtod()がリンクできんという報告が挙がっていたり。これはこれで 直ってくれると良いのですが、そうしてビルドできたgdcでコンパイルすると ずっこける実行ファイルが生成される場合がある点にも気づいてくれる事に 期待したり。

そういや、gdcのmasterに DMD2.065がなかなか統合されないのはなんでだろう?

DConf2014の ビデオとかスライドって、まだ公開されていないなぁ?と思ったのですが、 Googleで検索すると動画がいくつかYouTubeに上がっていたり。

2014/06/10

早くも無く遅くも無く。

そういや python って「パイソン」って読んでいるのですが、 英語の発音だと「パイサン」か「パイタン」に聞こえます。そんだけ。

E3関連で来ていた アンチャ4 のトレーラー。これ、リアルタイムレンダリングなの?! って感じ。あと、ドンスタの新作も来るらしい。「Don't Starve: Reign of Giants」 というタイトル通り、今度は 巨大な生物が居る世界に放り出されるらしい(^^;

2014/06/09

早くも無く遅くも無く。

ちょろり調べ事。

そういやEmacsでC-sで文字列をサーチする際、半角空白文字をサーチした時の 挙動がなんだか変な感じになっていたり。具体的には次のような感じ。

00000000011111111112222222222
12345678901234567890123456789
This      is     a   pen    .

ThisのTにカーソルが乗っていたとして、C-s後に半角空白文字を一文字入力すると 期待値はThisのsの後の空白文字の次の空白文字の上(6カラム目)にカーソルが 移動して欲しいのですが、isのi(11カラム目)までカーソルが動いてしまいます。
同じくThisのTの上にカーソルが乗った状態で、正規表現サーチの ESC C-sで 「\s-」をサーチするとなんとなく期待通りになります。
ただ、C-sもESC C-s も空白サーチをすると改行にまでマッチしてしまう為、 なんだか思っているのと違うという気がしたり。いつからこうなっていたかは いまひとつ定かではないのですが、少なくともMeadow3はこういう感じでは ありませんでした。まぁ、そういうもんだと思って使えばやりようはいくらでも ありますが、キーボードマクロを使う時に直感と違う動きをされると 入力し間違えそうです。

少しWeb検索してみたところ、Emacs-23→24での変更の一つに空白文字を緩く見る というのが加わったらしい(\s-相当でマッチしているようです)。 isearch-lax-whitespace という変数が tならば今回のような挙動になり、 nilならば当初期待通りの動きになる(改行にマッチする事も無い)ようです (lisp/isearch.elのソースを見た結果)。 そんな訳で少し考えて 常に nilにする方向で決定(^^;

2014/06/08

昼過ぎ起床。

洗濯したり掃除したり。

ちょろりお出かけ。

「ONEPIECE(74)」。色々とネタを仕込み終えて着火した所で本巻は終了。 続きが気になってしかたありません(^^; かなりの量の仕込みが散りばめ られていますので、どれを回収してどれを残すのか楽しみかも。

TRAIALS。スランプ気味。
そういや各コースには条件を満たしてクリアするチャレンジと称した ものがあったり、隠れキャラクターらしい「リス」を見つけ出すと いうのがあるらしいのですが、リスの方がイマイチどういう事なのか 判らなかったり。何度となくリトライを繰り返している中で一度も 偶然に遭遇するような事がなかったのでWebで検索してみるも、 何故か情報が得られなかったり。

2014/06/07

昼過ぎ起床。

TRAIALS。ハードでいくつかシルバーが取れるもEXTREMEは全く歯が立たず。 リプレイを参考にと思ってみるも上手すぎて真似できません(^^; それにしても、世界ランク1位のリプレイはそのテクニックに感心する訳ですが、 それよりもコースがクリアできるように作られていて、且つクリアできると カッコイイようにデザインされているのがスゴイと思うのです。 何かしらクリア可能な単位を繋げるような手法でデザインしているのかな?と思う訳ですが、 それにしてもパッと見でいける気がしないし、実際一発でうまくいかない (上手い人はそうでもないかも知れませんが)のですが、クリアできると そういう事かと気づかされる感じに、どのコースもデザインの秀逸さを感じます。

2014/06/06

早くも無く遅くも無く。

TRAIALS。ハードで少しだけシルバーが取れるようになったり。 でも、ダメなコースは全然ダメ。

そういやPS4のファームアップデート後、オンラインストレージへの アップロードに失敗しなくなったようです。

2014/06/05

早くも無く遅くも無く。

TRAIALS。ちっとも上達せず。

2014/06/04

飲み会で日付け越え前に帰着。

眠くて急速停止。

2014/06/03

早くも無く遅くも無く。

先日PS4のファームアップデートが来ないなぁ?と書いたらなぜか今日 新しいのが来てた。更新内容の詳細はよく判らず。 オンラインストレージへのアップロード失敗が修正されているかも?

TRIALS FUSION。EXTREMEはやっぱり歯が立たないので、 ハードのシルバーメダルを目指してみたり。ギリギリ取れる くらいには上達しているようなそうでもないような。

それにしても、世界ランク1位の人のリプレイは、コースに マシンが吸い付いているかのような走りをしていて、 いくらなんでもここまで極められるものなのだろうか?と 思ったりします。

2014/06/02

早くも無く遅くも無く。

そういやPS4のファームウェアをアップデートした4月末頃から セーブデータのオンラインストレージへの自動アップデートが失敗 するようになってます。まぁ、毎日何かしらメッセージが 出てるのが目障りですが実害はありません。でも、PS3の頃だと 何かしら問題があれば比較的すぐに修正版が出ていたように思う のですが、1ヶ月間音沙汰無しなのは対応が悪くなっているように も感じてしまいます。

TRIALS FUSION。ハードの一番難しいのをどうにか解除して、 EXTREMEをオープンできたのですが、歯が立つ気が全くしない(^^;;;;

2014/06/01

昼ごろ起床。

TRIALS FUSION。中級くらいまではなんとかなったのですが、上級は いきなり難しくなりすぎです(^^; やり直し回数があっという間に 数百回とかになるのですが、それよりもコントローラを持つ手の方が 限界に達しました。

休んでから再開。ある面で完全に手詰まり。×ボタンを押しまくって 何度もリトライしていたら、500回が上限でコースの最初からやり直しを 強制させられたり。なんてこった。
手も限界になったので、ワールドランキングがどんなもんなの か見ていたら、リプレイを見られるというのを知って、手詰まりになっている 所をどうやってクリアしているのか見てみたり。.........凄すぎて参考に なりません(^^;;;;; 他にも、ほぼ崖になっているコースをどこまで登れるか 試すスキルゲームがあるのですが、それの1位のリプレイを観てあまりの 凄さに愕然としてみたり。
うまい人のをいくつか見てみると、基本的に後輪のみを使い、ウイリーで バランスを取りながら進むという感じでした。リーン(ライダーの体重を 前後に移動させて重心をコントロールする動作を指すらしい)を うまく使うと、時には前輪だけでバランスを取ったりできるようです。 後輪が地面に接地していて、接地点を支点にして前に重心がかかっていれば、 どんな急勾配でも登れるようです。とにかくタイヤが跳ねないように 吸い付くようにピタッと地面に着地させるのがポイントとなるようですが、 TANEにはムリです(^^;;

TRIALSって レースゲームのようで、実は物理系のアクションパズル だと思います。


TOP PREV