月別アーカイブ: 2016年7月

ポケモンGOを動かしてみました

CD-TAB718Bで動きました。
タブレット、GPSなし、RAM 1Gと動作スペックを満たしていません。
Pokemon GOを普通にinstallしてSDに移動(メモリに余裕があれば移動させる必要はありません)
Xposed PokemoとApp Settingsをinstall
App Settingsを起動してXposed Pokemoを選択して常駐化をチェックして保存
App Settingsの指定をしないとゲーム中にXposed Pokemoのジョイステックが消えてしまう事があります。
Xposed Pokemoを起動してスタート位置を地図で選んでstartさせPokemon GOを起動します。
ジョイステックで移動させてゲームができます。
ゲーム中に移動できなくなったら諦めてPokemon GOを再起動させます。
これでレベル8までゲームを進められました。

Xposedを使っているのでroot化していないと使えません。
xposed installerで探すとPokemon GOを対象としたものがいくつか見つかります。
Pokemon Go Joystick 2.2
DarkPokemonGo 1.1
も試しましたが、大差ないようです。
どちらもゲーム中にジョイステックが消える現象は出ました。

8/4
アプデートの画面がでて、更新するしか選べないのでOKを押して
google playでお使いの端末はこのバージョンに対応していません
になるので終了させてもゲームができなくなりました。
installできたこと自体が不思議でしたから仕方ないのでしょう。
レベル19直前まで進んでいました。

PPC Macで試しました

久しぶりの書き込みです。
30のプログラミング言語でFast inverse square rootを実装してみました!
という面白そうな話題が有りました。gitでソースを取得してPPC Macで試してみました。
まずはcからとmakeするとエラーになります。
getlineが無いので、”getline ソース”で検索してソースを入手して、
#include “getline.c”
を追加して無事makeでき問題なく動きました。
c++はそのままでOKですが、objcではcと同じ修正が必要でした。
java,perl,pythonと問題なく動きました。でもrubyでは正しい答えが得られません。
[fastinvsqrt/src/ruby]ruby fastinvsqrt.rb
0.1
1361.0838229396095
0.01
-41.4106173228037
0.0025
-1114.357112424869
念のためにWindows10のcygwin環境で試すと問題なく動きます。
rubyはOS付属1.8でもmacportsでinstallした1.9,2.3でも同じ結果になります。
元の記事では、
「Perl譲りのpack/unpackが使えるので、少し書き直すだけで動きました。」
とありますが
[fastinvsqrt/src/perl]perl fastinvsqrt.pl
0.1
3.15723208514638
0.01
9.98252138783103
0.0025
19.9650427756621
でperlは問題有りませんがrubyでは正しい答えが得られません。
何か解ったら追記します。

rubyでの動作を調べてみます。
[fastinvsqrt/src/ruby]cat test.rb
def fastInvSqrt(x)
i = [x].pack(“e”).unpack(“i”)[0]
printf “%x\n”,i
i = 0x5f3759df – (i >> 1)
printf “%x\n”,i
y = [i].pack(“i”).unpack(“e”)[0]
printf “%f\n”,y
にして途中結果を表示させます。
ppc mac
[fastinvsqrt/src/ruby]ruby test.rb
1
803f
5f3719c0
-2.394005
3.269322019503419

cygwin
[~/tmp]ruby test.rb
1
3f800000
3f7759df
0.966215
0.9983071495847821

perlで同じように途中結果を表示させてみました。
[fastinvsqrt/src/perl]perl test.pl
1
3f800000
3f7759df
0.966215
0.998307149584782
cygwinと同じになりました。

pack/unpackを調べないとわからないですね。
unpackのiが
int (符号つき整数, エンディアンと int のサイズに依存)
なので環境で動作が異なるの当然で
V:”VAX”バイトオーダー(リトルエンディアン)のunsigned long (32bit 符号なし整数)
iをVに変える事でppc macでもcygwinでも同じ結果が得られました。