zte open

久々にzte open(uk)を起動するとハング。
仕方がないので1.2でリフレッシュ

adb reboot bootloader
fastboot flash boot boot.img
fastboot flash userdata userdata.img
fastboot flash system system.img
fastboot flash recovery recovery.img
fastboot erase cache
fastboot reboot

blackberry bold 9900 その2

家のwifiで時々繋がらなくなってしまう事がありますが、ほぼほぼ大丈夫な運用。
繋がらない時にシスログを参照すると、rimのhttpクラスでrouting例外発生。
やはり、fonちゃんと何かあるかな。
それはさておき、Service Bookです。


MagicBerryちゃんは、なかなかにクローズドな感じで、ipd解析サイトを閲覧しながらツールを作らないといけないという。

blackberry bold 9900

あきばで企業放出品を入手。

さてさて。
BISは新規登録終了。ちゅうか、最初からやる気もないですが。
wifi繋げただけの感触では、ブラウジングは特に問題なし。
モバイルネットワーク詳細項目にデータサービスのスイッチがあるのですが、これがBISのスイッチ。
BISの説明からすると、標準ブラウザではBIS接続なしに通信不可なような気もするけど。
で、端末リセットを掛けて、BBDS経由ですべて更新を掛けます。
7.1 Bundle 2534(v7.1.0.923, Platform 5.1.0.652)
この後にtwitter設定をすると、dns errorが発生。
という訳で、システムログはalt+lglg

fxos camera

cameraアプリを作ってみたものの。
何も考えずに、HDかつjpegフォーマットで保存。





酷い。
酷すぎる。
というか、ホワイトとかシーンとかオートにするとロクな事無いですね。



標準カメラアプリで撮影したもの。
サチリもないし、凄く良い。

https://github.com/mozilla-b2g/gaia/tree/master/apps/camera

別に標準使えば良いのですが、非常に組んでいて楽しい。
他にもたくさんキャリブレーションあるので色々と楽しんでみる。


GR DIGITAL Ⅱ

巡礼で見つけたGRDⅡを一夜明けてから狂おしく愛撫しています。
何はともあれファームアップという、中古セオリを順守。そんなセオリありませんが。


 SCENEにしてから、マクロ押しながら再生ボタン押下で、ファームバージョン確認。


あぷでご。


作例。
にもなっていない。
何もせずに、アパ優先/日光直下で切ると、素晴らしいくらいサチっておりました。
もちろん、すぐにアンダー補正させる術は会得していません。


強烈なマクロ。
コンデジで唯一楽だと感じるのはマクロですかね。

何だか、物凄く楽しいです。

ps2で。

もう色々と考えて、考え過ぎて。
よくよく考えると、常時ps2に接続出来なくても良いわ、
hddへインストする時だけ接続が必要ということで、
長いケーブルでpc部屋のルータに繋ぐことにした。

とりあえず、uLaunchのネット設定で、ipとマスクとゲートウェイ設定。
ps2net起動。
pingとftp接続を確認。
更に、hdld_svr 0.90起動。

おもむろに、hdl dump helper v2.3起動し接続すると接続エラー。
このメッセージでは(ポートブロックなのか)真相が分からないわ。

なので、cuiを使うことに。

hdl_dump_090 install 192.168.xxx.xxx {iso_path}

で叩くと、

192.168.xxx.xxx: APA partition is broken; aborting.

とな。

hdl_dump_090 initialize 192.168.xxx.xxx

hdl_dump_090 toc 192.168.xxx.xxx
type   start     #parts size name
0x0001 00000000.:  1   128MB __mbr
Total slice size: 38146MB, used: 128MB, available: 38016MB

おっけー

hdl_dump_090 install 192.168.xxx.xxx {iso_path}
100%, 1 sec remaining, 0.69 MB/sec

おっけー

おっせー

oplで確認。


新生たむたむです

結局、chrome osに落ち着きました。
最初、mieを入れようとブートイメージを作成したのですが、既にメンテもされておらず微妙な感じでしたので、うぶ14をインスト。これでも良いかなと思いましたが何か釈然としない。unityデザインが嫌いちゅうのもあるけど、じゃぁマネージャを切り替える?ちゅうと、そんな弄っても何も楽しくない。何だかなぁーと思った矢先に、

あ、chrome osがあるじゃん。

という発想。今、chrome os上で記載しているのですが、非常に良いです。
現状、live起動からhddインストしただけですが、fepの設定も不要ですし、

というか、

何も設定せずともweb利用であれば全く問題なし。
めっちゃ快適。

なんというか

何故か。いえ、もはや必然というか。
地球防衛軍にド嵌りしてしまい、hdd起動とか忘れてしまうくらい。
まーそもそも、腰を重くしてしまった原因が、
・ps2ドライブからリップしてhddにイメージを置くelfが存在しない。
・pcでリップしてusbやネットワーク経由でhddへ置く方法しか見つからない。
・我が家では、リビングにwifiルータしか設置しておらず、pcが所属するサブネットとは別。
・リビングのwifiルータはhub機能なし。
・pcは別部屋で有線
・ラップトップはwifiでしか繋がらない(usb-lanアダプタを所持していない)
・pcでリップしusbメモリやsdにイメージ転送してps2で取りこむちゅうのは面倒臭くてやる気が起きない。

という具合で、要はpcとps2を移動せずにネットで繋げることが出来ればやるけど、いまいち頑張れない。

というか、その頑張る時間で防衛したい。

やっと、防衛も落ち着いてきたので、やってみるかなという所。

そうこうしているうちに、xpが終わって、まぁ、個人使用pcのosが賞味期限過ぎたところで別にどうってこともないのですが、愛するヴィヴィアンちゃんも、そろそろ鞍替えかなと、とりあえずmieを入れてみることにした。どうも、うぶは新しくなればなるほど重くなって嫌な感じですので、hpオフィシャルで入れてみることにしました。


何がしたかったんだっけかps2 その3

結局のところ、scph-1x000ではosdsysを乗っ取っていないので、
fmcbのショートカットにuLaunchを登録し、直起動としてみた。
うん。
これでとりあえず良いです。

kelfとかsignの話は後程ちゅうことで、とりあえずnaviインストなしで
hddアクセスを確認してみることに。

て。

ファイルブラウザからhdd0アクセスしてみる。
おぉお。
load hdd moduleだとさ。
hddのledも点灯しスピンしている。
そいや、sys-confとかにhdd系のアレソレあったよね。

わぉ。
一発。

そうだよ、ディスクレスだよ、やりたかったの。

さて、次は、地球防衛軍2をhddに載せて起動してみるよ。

ps2と戯れるというよりも意地になりつつある その2

fmcb 1.93で、scph-30000だと乗っ取りブラウザになるのだが、
scph-10000だとノーマルのまま。
一応、
  1. The "Early Japanese"/PCMCIA units (SCPH-10000, SCPH-15000 and SCPH-18000) are fully supported.
とチェンジログには記載されている。

/
BOOT                            | <dir>  | 03/23/2014-11:31:39
BAEXEC-SYSTEM                   | <dir>  | 03/23/2014-11:32:01
BEEXEC-SYSTEM                   | <dir>  | 03/23/2014-11:33:15
BIEXEC-SYSTEM                   | <dir>  | 03/23/2014-11:33:32
SYS-CONF                        | <dir>  | 03/23/2014-11:30:44

/BOOT
SFMCB.KELF                      | <file> | 03/23/2014-11:26:05
icon.sys                        | <file> | 03/23/2014-11:29:23
BOOT.icn                        | <file> | 03/23/2014-11:29:51
BOOT.ELF                        | <file> | 03/23/2014-11:31:39

/BAEXEC-SYSTEM
icon.sys                        | <file> | 03/23/2014-11:28:31
FMCB.icn                        | <file> | 03/23/2014-11:28:59
osd120.elf                      | <file> | 03/23/2014-11:31:44
osd130.elf                      | <file> | 03/23/2014-11:31:51
osdmain.elf                     | <file> | 03/23/2014-11:32:01

/BEEXEC-SYSTEM
osd130.elf                      | <file> | 03/23/2014-11:32:10
osdmain.elf                     | <file> | 03/23/2014-11:32:17
icon.sys                        | <file> | 03/23/2014-11:33:08
FMCB.icn                        | <file> | 03/23/2014-11:33:15

/BIEXEC-SYSTEM
osdsys.elf                      | <file> | 03/23/2014-11:32:26
osd110.elf                      | <file> | 03/23/2014-11:32:33
osd120.elf                      | <file> | 03/23/2014-11:32:42
osd130.elf                      | <file> | 03/23/2014-11:32:49
osdmain.elf                     | <file> | 03/23/2014-11:32:59
icon.sys                        | <file> | 03/23/2014-11:33:23
FMCB.icn                        | <file> | 03/23/2014-11:33:32

/SYS-CONF
FREEMCB.CNF                     | <file> | 03/23/2014-11:26:34
FMCB_CFG.ELF                    | <file> | 03/23/2014-11:27:00
USBD.IRX                        | <file> | 03/23/2014-11:27:30
USBHDFSD.IRX                    | <file> | 03/23/2014-11:28:05
icon.sys                        | <file> | 03/23/2014-11:30:17
sysconf.icn                     | <file> | 03/23/2014-11:30:44

とりあえず、scph-1x000固有の問題なので調べてみる。

調べていると、どうも、あのブラウザ乗っ取りはosdsysが関与しているみたいで、
scph-1x000系は効いていない模様。
その代わりというか、ショートカットで直起動が可能ちゅうことで、バシバシ適当に
ボタン押していたら、uLaunch起動。更に、そこでファイルマネージャとfmcbのconfigを
割り当てたら、ショートカット起動可能となる。
でも、何だか3回に1回くらいの起動率な気がする。
おまけにscph-3000とscph-1x000では、ランチキーが全然違った。
scph-3000はほぼ、osdsysで埋まっていたのに比べ、scph-1x000系はほぼ設定なし。
このセッティングて機種単位に持っているのか。


とりあえず、何とかここまで完了したのだが、腑に落ちないので、仕組みから理解して行こうと思う。

1.9x QA

ps2と戯れてみる その1

bbunitを入手したのですが、fmcb導入前にメモカ仕様が良く分かっていないので戯れてみる。

とりあえず、ハドフでCECHZM1とSCPH-10020を入手。



中身を見てみる。
---------- Filename ----------  |  Type  | Last Modification (UTC)
BIDATA-SYSTEM                   | <dir>  | 11/18/2013-00:42:39
BISLPS-20030SHANGHAI            | <dir>  | 11/02/2006-20:40:18
BISLPM-62474KANJI               | <dir>  | 07/21/2007-14:09:10
BISLPSP02227THEBLOCK            | <dir>  | 11/05/2007-15:10:50
BISCPS-15015                    | <dir>  | 02/18/2002-14:43:01

前の持ち主さん、フォーマットせずにハドフへぶっこんだらしく。
普通、フォーマットなんてしないか。
上海とかブロック崩しとか、そんな感じの持ち主さんですね。

PS2 Memory Card format
Formating MC...
Memory card succesfully formated.

という訳でフォーマット。

我が家のメモカを見てみる。
---------- Filename ----------  |  Type  | Last Modification (UT
BIDATA-SYSTEM                   | <dir>  | 03/21/2014-23:26:38
BISLPM-65888dq8_0               | <dir>  | 06/18/2009-11:25:11
BISLPM-65888dq8_1               | <dir>  | 06/19/2009-16:17:40
BISLPM-65888dq8_2               | <dir>  | 09/24/2005-17:05:23
BISLPM-65888dq8_3               | <dir>  | 09/23/2005-16:22:13
BISLPM-65888dq8_4               | <dir>  | 09/24/2005-01:33:37
BISLPM-65888dq8_5               | <dir>  | 11/23/2011-20:52:57
BISLPM-66375OKAMI000            | <dir>  | 11/12/2010-15:32:49
BISLPM-66375OKAMI001            | <dir>  | 03/08/2014-00:22:09
BISLPS-25050FF042800            | <dir>  | 03/21/2014-23:44:13
BISLPS-25050FF042801            | <dir>  | 03/13/2014-23:21:26
BISCPS-11003ico                 | <dir>  | 01/14/2014-21:40:32

ドラクエ8、大神、ico、ffxが見えます。

とりあえず、フォーマットしたメモカをps2に装填。
ps2管轄に入ると

BIDATA-SYSTEM                   | <dir>  | 03/22/2014-17:05:49

こんな感じ。



で、例えば、カプクラでセーブすると

BIDATA-SYSTEM                   | <dir>  | 03/22/2014-17:05:49
BISLPM-66317                    | <dir>  | 03/22/2014-17:06:53

こんな感じ。

BIDATA-SYSTEM配下
---------- Filename ----------  |  Type  | Last Modification (UTC)
history                         | <file> | 03/22/2014-17:05:48
icon.sys                        | <file> | 03/22/2014-17:05:49

因みに、カプクラセーブデータ配下
---------- Filename ----------  |  Type  | Last Modification (UTC)
icon.sys                        | <file> | 03/22/2014-17:06:50
static.ico                      | <file> | 03/22/2014-17:06:51
BISLPM-66317                    | <file> | 03/22/2014-17:06:53

なるほど。
あーそうだ、ps1系でセーブやってみないとな。

パラッパラッパを1セッションしてセーブしてみると、
「メモリカードがささってないよ」
って怒られる。
ps1のセーブデータがps2メモカに保存出来ないなんて知りませんでした。
え?と、ps1メモカを装填してセーブ再施行すると完了。
おぉ、そうなんだ。

調べてみると、ps1メモカからps2メモカへのコピーがps2上で出来るらしい。
単純に間借りするだけですが。

それが、こちら。
---------- Filename ----------  |  Type  | Last Modification (UTC)
BIDATA-SYSTEM                   | <dir>  | 03/22/2014-19:08:29
BISLPM-66317                    | <dir>  | 03/22/2014-17:06:53
BISCPS-18002A                   | <dir>  | 03/22/2014-19:06:28

パラッパラッパ(SCPS-18002)のセーブデータが保存されています。

BIDATA-SYSTEM配下
---------- Filename ----------  |  Type  | Last Modification (UTC)
history                         | <file> | 03/22/2014-19:08:28
icon.sys                        | <file> | 03/22/2014-19:08:29

ちょっとhistoryに操作しているかは謎ですが、タイムスタンプは更新されています。
サイズが見れていないので実際は不明。

BISCPS-18002A配下
---------- Filename ----------  |  Type  | Last Modification (UTC)
BISCPS-18002A                   | <file> | 03/22/2014-19:06:28

単純な複写なので、ps1メモカのセーブデータ仕様のまま。

今日眺めた感じでは、メモカブの突き方は不明ですね。
次回はhistoryファイル内容ですね。

更新日時がUTCとか表記されていますが、思いっきりJSTですね。

有益な情報はこちら

sc-04d 4.4

sc-04dは正式に4.4から切り捨てられました。

ので。

cm11を導入してみました。



やはり、sc-04dは、遊ぶ端末としては最高だと思うのです。

SO-01D その6

というか。

舐めてリッピング機能付けるとか息巻いてしまい、
それならば一層のこと、ROM2やらMCDも対処してしまおうと。

で。

とりあえず、ROM2からやってしまおうかと以下の手順。

1.TOC奪取
2.TOC舐め
3.オーディオトラックならばRawReadからWaveファイル化
4.データトラックならばRawReadからIsoファイル化

とか。

3までは順調だったのです。1日くらいで。
データトラックがどうしても読めない。
読めないというか、DeviceIoCtrlがINVALID_FUNCTIONを返してくる。
ディスクオフセットやセクタ数、読み出しバッファは、オーディオトラックで
実績があるのでバグが考え難い。
結局のところ、TrackModeが怪しいんじゃないのかちゅうことで、XAForm2から
別のRaw系に切り替えたら、今度はパラメタエラー。
あー、そいや、ROM2のデータトラックて、XAと思い込んでいるけど、本当?
て、調べてみたら、どうやらMODE1みたい。

ぎゃふん。

MODE1だと、デフォで対応していないので、すかじ生こまんど(0xBE)発行するしかない。

こんな面倒ならやるんじゃなかった。


ROM2のすーだらちゃん読み込んだところ。

該当するすかじこまんど仕様。
http://www.13thmonkey.org/documentation/SCSI/x3_304_1997.pdf

SO-01D その5

zpakの解析

■ metadata.xml
当たり前の差分

■ manual
当たり前の差分

■ data
- image.ps
 rom image
 当たり前の差分
- ps1_rom.bin
 これ、biosのはずなんだけど差分が出てしまっている。
 いやぁ、なんか香ばしいな。

雑感として、なんちゅうか構造も然ることながら、全体的に混沌としています。
被ったリソースが幾重にも出現してくると反吐が出ますね。

FPseで遊ぶ方がよほど効率的だと思うのですが、ある意味、こちらも面白い。
面白いついでに、psxperiaでも読み解こうかなと思います。

boot log

10-14 07:02:42.375: I/ActivityManager(235): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.sony.playstation.NCJA10031_1/com.sony.android.psone.BootActivity bnds=[238,273][351,431] } from pid 345
10-14 07:02:42.435: I/ActivityManager(235): Start proc com.sony.playstation.NCJA10031_1 for activity com.sony.playstation.NCJA10031_1/com.sony.android.psone.BootActivity: pid=1327 uid=10088 gids={3003, 1015}
10-14 07:02:42.495: I/WindowManager(235): Setting rotation to 1, animFlags=1
10-14 07:02:42.515: I/ActivityManager(235): Config changed: { scale=1.0 imsi=0/0 loc=ja_JP touch=3 keys=1/1/2 nav=2/2 orien=2 layout=34 uiMode=17 theme=ComponentInfo{com.sonyericsson.defaultruntimethemes/com.sonyericsson.defaultruntimethemes.BlueThemeService} seq=4}
10-14 07:02:42.685: D/dalvikvm(1327): Trying to load lib /data/data/com.sony.playstation.NCJA10031_1/lib/libzplatform.so 0x2afc6fd8
10-14 07:02:42.755: D/dalvikvm(1327): Added shared lib /data/data/com.sony.playstation.NCJA10031_1/lib/libzplatform.so 0x2afc6fd8
10-14 07:02:42.755: D/dalvikvm(1327): No JNI_OnLoad found in /data/data/com.sony.playstation.NCJA10031_1/lib/libzplatform.so 0x2afc6fd8, skipping init
10-14 07:02:42.765: D/dalvikvm(1327): Trying to load lib /data/data/com.sony.playstation.NCJA10031_1/lib/libjava-activity.so 0x2afc6fd8
10-14 07:02:42.895: D/dalvikvm(1327): Added shared lib /data/data/com.sony.playstation.NCJA10031_1/lib/libjava-activity.so 0x2afc6fd8
10-14 07:02:42.915: E/Source/WhiteBox/TfitProtectedTransform.cpp(1327): TFIT_Engine_CreateTransform 7ED25480 2127713608 2CBFFC74 7ED25340
10-14 07:02:42.965: I/ActivityManager(235): Start proc com.sonyericsson.android.preinstalledservice for service com.sonyericsson.android.preinstalledservice/.PreinstalledLicensingService: pid=1335 uid=10131 gids={}
10-14 07:02:43.025: I/ActivityManager(235): Displayed com.sony.playstation.NCJA10031_1/com.sony.android.psone.BootActivity: +589ms
10-14 07:02:43.105: D/dalvikvm(1335): Trying to load lib /data/data/com.sonyericsson.android.preinstalledservice/lib/librsasigner.so 0x2afc6970
10-14 07:02:43.115: D/dalvikvm(1335): Added shared lib /data/data/com.sonyericsson.android.preinstalledservice/lib/librsasigner.so 0x2afc6970
10-14 07:02:43.115: I/native rsasigner(1335):  JNI_OnLoad!
10-14 07:02:43.115: I/native rsasigner(1335):  clazz is NOT NULL
10-14 07:02:43.195: W/IInputConnectionWrapper(345): showStatusIcon on inactive InputConnection
10-14 07:02:43.225: I/ActivityManager(235): Start proc com.sonyericsson.semcsuite for broadcast com.sonyericsson.semcsuite/.ui.PackageIntentReceiver: pid=1342 uid=1000 gids={3002, 3001, 3003, 1007, 1015}
10-14 07:02:43.225: I/ActivityManager(235): No longer want com.sonyericsson.androidapp.fbmusiclike (pid 1174): hidden #16
10-14 07:02:43.315: I/ActivityThread(1342): Pub com.sonyericsson.semcsuite.search.SuggestionProvider: com.sonyericsson.semcsuite.search.SearchSuggestion
10-14 07:02:43.315: I/ActivityThread(1342): Pub com.sonyericsson.semcsuite.data.GameContentProvider: com.sonyericsson.semcsuite.data.GameContentProvider
10-14 07:02:43.335: I/com.sonyericsson.semcsuite.data.PreferenceHandler(1342): DebugMode: false
10-14 07:02:43.335: I/com.sonyericsson.semcsuite.data.PreferenceHandler(1342): LaunchMode: 0
10-14 07:02:43.335: I/com.sonyericsson.semcsuite.data.PreferenceHandler(1342): PSNMode: 0
10-14 07:02:43.415: V/Z-System(1327): Application loaded: 
10-14 07:02:43.425: D/ContentUtil(1342): Adding content: com.gameloft.android.GAND.GloftAsp6.asphalt6
10-14 07:02:43.445: W/dalvikvm(1327): dvmFindClassByName rejecting 'com/sonyericsson/zsystem/jni/ZJavaActivityInput'
10-14 07:02:43.455: W/dalvikvm(1327): dvmFindClassByName rejecting 'com/sonyericsson/zsystem/jni/ZJavaActivitySensor'
10-14 07:02:43.465: W/KeyCharacterMap(1327): No keyboard for id 0
10-14 07:02:43.465: W/KeyCharacterMap(1327): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
10-14 07:02:43.465: W/KeyCharacterMap(1327): No keyboard for id 65539
10-14 07:02:43.465: W/KeyCharacterMap(1327): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
10-14 07:02:43.465: W/KeyCharacterMap(1327): Can't open keycharmap file
10-14 07:02:43.465: W/KeyCharacterMap(1327): Error loading keycharmap file '/system/usr/keychars/msm_pmic_pwr_key.kcm.bin'. hw.keyboards.65540.devname='msm_pmic_pwr_key'
10-14 07:02:43.465: W/KeyCharacterMap(1327): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
10-14 07:02:43.465: W/KeyCharacterMap(1327): No keyboard for id 65541
10-14 07:02:43.465: W/KeyCharacterMap(1327): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
10-14 07:02:43.465: W/KeyCharacterMap(1327): Can't open keycharmap file
10-14 07:02:43.465: W/KeyCharacterMap(1327): Error loading keycharmap file '/system/usr/keychars/atdaemon.kcm.bin'. hw.keyboards.65542.devname='atdaemon'
10-14 07:02:43.465: W/KeyCharacterMap(1327): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
10-14 07:02:43.465: W/KeyCharacterMap(1327): Can't open keycharmap file
10-14 07:02:43.465: W/KeyCharacterMap(1327): Error loading keycharmap file '/system/usr/keychars/simple_remote.kcm.bin'. hw.keyboards.196609.devname='simple_remote'
10-14 07:02:43.465: W/KeyCharacterMap(1327): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
10-14 07:02:43.465: I/Z-System input(1327):  O button is mapped with DPAD_CENTER! X and O are swapped!
10-14 07:02:43.495: D/ContentUtil(1342): Adding content: com.digitallegends.brucelee
10-14 07:02:43.525: D/ContentUtil(1342): Adding content: com.gameloft.android.GAND.GloftStsq.ML
10-14 07:02:43.555: I/PackageIntentReceiver(1342): Package com.sony.playstation.NCJA10031_1 Launched
10-14 07:02:43.555: I/ActivityManager(235): Start proc com.playstation.pssuite for broadcast com.playstation.pssuite/.ui.PackageIntentReceiver: pid=1351 uid=10073 gids={3003}
10-14 07:02:43.555: I/ActivityManager(235): No longer want com.google.android.apps.uploader (pid 1187): hidden #16
10-14 07:02:43.615: E/AudioPolicyManagerBase(143): unknown stream type
10-14 07:02:43.615: E/AudioPolicyManagerBase(143): unknown stream type
10-14 07:02:43.615: E/AudioPolicyManagerBase(143): unknown stream type
10-14 07:02:43.615: E/AudioPolicyManagerBase(143): unknown stream type
10-14 07:02:43.625: I/AudioHardwareMSM7X30(143): Routing audio to Speakerphone
10-14 07:02:43.625: I/AudioHardwareMSM7X30(143): Change routing audio to speaker for xLOUD
10-14 07:02:43.635: I/ActivityThread(1351): Pub com.playstation.pssuite.data.GameContentProvider: com.playstation.pssuite.data.GameContentProvider
10-14 07:02:43.645: D/AudioHardwareMSM7X30(143): value of device and enable is 32 1
10-14 07:02:43.655: D/kernel(122): [  277.195556] [msm7x30.c:msm_device_put] device xloud_speaker_stereo_rx set 1
10-14 07:02:43.655: D/kernel(122): [  277.195556] [msm7x30.c:msm_device_put] device freq =48000
10-14 07:02:43.655: D/kernel(122): [  277.198425] [adsp.c:msm_adsp_get] module AFETASK has been registered
10-14 07:02:43.655: D/kernel(122): [  277.198455] [adsp.c:msm_adsp_enable] enable 'AFETASK'state[0] id[17227119]
10-14 07:02:43.665: D/kernel(122): [  277.206481] [adsp.c:adsp_rtos_mtoa_cb] rpc event=0, proc_id=2, module=17227119, image=0
10-14 07:02:43.665: D/kernel(122): [  277.206481] [adsp.c:adsp_rtos_mtoa_cb] module AFETASK: READY
10-14 07:02:43.665: I/com.playstation.pssuite.data.PreferenceHandler(1351): DebugMode: false
10-14 07:02:43.665: I/com.playstation.pssuite.data.PreferenceHandler(1351): LaunchMode: 0
10-14 07:02:43.665: I/com.playstation.pssuite.data.PreferenceHandler(1351): PSNMode: 0
10-14 07:02:43.715: D/kernel(122): [  277.252899] msm_snddev_poweramp_on: power on amplifier
10-14 07:02:43.715: D/kernel(122): [  277.252960] [adsp.c:msm_adsp_get] module AUDPPTASK has been registered
10-14 07:02:43.715: D/kernel(122): [  277.252990] [adsp.c:msm_adsp_enable] enable 'AUDPPTASK'state[0] id[17227122]
10-14 07:02:43.715: D/kernel(122): [  277.256134] [adsp.c:adsp_rtos_mtoa_cb] rpc event=0, proc_id=2, module=17227122, image=0
10-14 07:02:43.715: D/kernel(122): [  277.256164] [adsp.c:adsp_rtos_mtoa_cb] module AUDPPTASK: READY
10-14 07:02:43.715: D/kernel(122): [  277.260314] [audpp.c:audpp_dsp_event] ENABLE
10-14 07:02:43.725: D/kernel(122): [  277.264648] [adsp.c:msm_adsp_write] AUDPPTASK command took 69 attempts: rc 0
10-14 07:02:43.935: I/PackageIntentReceiver(1351): Package com.sony.playstation.NCJA10031_1 Launched
10-14 07:02:43.985: W/dalvikvm(1327): dvmFindClassByName rejecting 'com/sonyericsson/zsystem/jni/ZJavaActivityGFX'
10-14 07:02:43.985: I/Z-System gfx(1327): eglInitialize() - Getting display
10-14 07:02:43.985: D/libEGL(1327): loaded /system/lib/egl/libGLES_android.so
10-14 07:02:43.995: D/libEGL(1327): loaded /system/lib/egl/libEGL_adreno200.so
10-14 07:02:43.995: D/libEGL(1327): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
10-14 07:02:43.995: D/libEGL(1327): loaded /system/lib/egl/libGLESv2_adreno200.so
10-14 07:02:44.005: I/Z-System gfx(1327): eglInitialize() - disp =com.google.android.gles_jni.EGLDisplayImpl@2b000590
10-14 07:02:44.005: I/Z-System gfx(1327): eglInitialize() - Initializing EGL
10-14 07:02:44.005: I/Z-System gfx(1327): eglInitialize() - Major=1 Minor=0
10-14 07:02:44.005: I/Z-System gfx(1327): eglInitialize() - Getting config
10-14 07:02:44.005: I/Z-System gfx(1327): eglInitialize() - Choosing config
10-14 07:02:44.005: I/Z-System gfx(1327): eglInitialize() - config[0] = 5650 D:16 AF:16 AMS:0 SS:0 MSAA:0:0 BS:16 L:0 ST:1415
10-14 07:02:44.005: I/Z-System gfx(1327): eglInitialize() - MatchingConfigs=12
10-14 07:02:44.005: I/Z-System gfx(1327): eglInitialize() - Creating display surface. NativeWindow=android.view.SurfaceView$3@2afd4bf0
10-14 07:02:44.015: I/Z-System gfx(1327): eglInitialize() - Creating context
10-14 07:02:44.015: I/Z-System gfx(1327): eglInitialize() - Making context the current one
10-14 07:03:14.195: D/kernel(122): [  307.732604] max17040 0-0036: batt: 82%, 4048 mV

SO-01D その4

apkの解析

■ AndroidManifest.xml

バンディクとみんごるの差分では、

<manifest package="com.sony.playstation.NCJA10031_1"
<manifest package="com.sony.playstation.NCJA10093_1"

これくらい。

■ パッケージ名

んで、まぁ、パッケージは被らなければ良いので良いのですけど、命名規則とか気になる。

http://forum.xda-developers.com/showpost.php?p=16520496

上記を読むと、ロケールに依存してバンディクパッケはこんな違いがあるらしい。

usa, r800x: com.sony.playstation.ncua94900_1.apk
europe, r800i: com.sony.playstation.ncea00344_1.apk

NC{ロケール文字}A{5桁}_1

クラッシュバンディクのプロダクトID

日本版はSCPS-10031
米版はSCUS-94900
欧版はSCES-00344

http://www.gamefaqs.com/ps/196986-crash-bandicoot/data

なるほどー

NC{ロケール文字}A{プロダクトID下5桁}_1

という規則ですね。

日本版でも、SCPSやSLPSがあるので、下5桁では被るものがあるかもしれませんが、気にするレベルではないですね。

ちゅう訳で、日本版で変換する場合は、

NCJA{プロダクトID下5桁}_1

というフォーマットで良いということ。

■ assets
- AndroidManifest.xml
- {package}_1.zpak

マニフェストはルートのものと同一。
zpakは、例えば、NCJA10031_1ならば、NCJA10031_1_1.zpakとなる。

zpakの中身は、
- metadata.xml
- assets
  - *.dds
  - editmaps
  - default
    - bitmaps
      - icon.png
- data
  - params.bin
など、わらわらとありますが、metadata.xmlにはゲーム名称やレーティングなど固有情報を埋める必要あり。icon.pngは勿論固有。ddsやparams.binは差分がないので流用可能です。

■ lib
- armeabi
 - libjava-activity.so
 - libzplatform.so

これは恐らくjniアクセスするpsoneネイティブエミュレータなんだろうけど、バンディクとみんごるで差分が出てしまっている。
このエミュで、rtypesは動作していたので問題はないと思うけど、psxperiaで色々と補正をしている節があるので要注意。

■ res
- drawable
 - icon.png 
- values
 - strings.xml
当たり前の差分ちゅうことで。

以上。

SO-01D その3

構想メモ

  1. [抽出]既存のapk(バンディクかみんごる)からpsone emulator(so含む)およびbiosを引っこ抜く機能(初回)
  2. [変換]付与されたパラメタおよびiconなどのリソースからapkを作成する機能
  3. [変換]psonegame imageを圧縮してbiosと各種パラメタを付与してzpakを作成する機能
  4. [転送]zpakを転送する機能
  5. [転送]adb使ってapkをインストールする機能

TODO
  1. apkパッケージ構造解析
  2. apkパラメタ解析
  3. zpakパッケージ構造解析
  4. zpakパラメタ解析
理想
  1. リップ機能も付与
SO-01Dを接続し、タイトルとアイコンだけ設定したら、CDがちゃんこしてスタートすると、リップ->ID生成->apk/zpak生成->転送/インストールまで終える感じ。
そういや、IDがpspの時と違って、SLPSとかああいうのでは無いんだよな。いまいちルールを把握していない。和のバンディクだと"NCJA10031_1"こんなの。

SO-01D その2

いきなり道を外れてしまいますが、自炊プレイの検証。

手順

  1. プレイしたいps1 discをリップ
  2. psxperiaで変換(色々と長いので割愛)
  3. 作成されたapkとzpakをsdへ複写
  4. apkをインストール

雑感

  • ゲーム単体を一つのアプリとしてカテゴライズする方式みたい
  • apkインストールのワンクッションが怠い
  • psxperiaは海外の方が作成し、グロのSO-01Dをベースにしているため、psxperiaの改修が必要。
  • psxperiaはオープン
  • javaで開発されている。guiはswingを使用。


とりあえず、細かいことは置いておき、動作確認。



何か特別というか、ちょっとした時(売女が割れた時とか)に変換しようと温めておいたRTYPESちゃんです。素晴らしき100円プライシング。


おぉ?


拍子抜けなくらい、正常に動作しています。

という訳で、root奪取しないと、バンディクのapkを確保出来ないので一度は必要ですね。

SO-01Dはちょっと薄いので、アクションやシューティングは微妙かもな。
フィット感では、PSPの方がやはりゲーミング特化しているので良いです。

興味が湧いてきたので、apk/zpakの配置、インストールも自動化するよう作ってみよう。

SO-01D その1

SO-01D祭りに参加し無事に獲得。

PS1愛好者であれば、PSPストックでSO-01Dは不要と思われるのですが、
一番の魅力は、物理ゲームパッド。
巷にある、青歯によるパッドアタッチメントと言う選択肢もありますが、なかなかの価格です。
何気に今回のSO-01D購入金額に相当したり。
おまけに、パッドって良し悪しがあって、ハズレ引いた日には凹むこと請け合い。

PlayStation Certifiedな端末が欲しかったというのも購入を後押し。

とりあえずデフォルトを舐めてみます。





PlayStation Pocket発見。


惚れ惚れするくらいに糞アプリ満載です。
キャリアコンテンツなんて、誰が欲しがるのでしょうかね。
キャリアの横暴ですよ。
キャリアは大人しく安定したインフラだけ提供していれば良いと思いますよ。



RAMが死活問題ちゅうことです。

サービスモード:*#*#7378423#*#*



さて、舐め回したので、デフォルトでのフルバックアップに入ります。


  1. root奪取
  2. cwmインストール
  3. reboot
  4. /dev/input/event1(VolDown)押下
  5. cwm起動
  6. backup
  7. sdのbackupセットを母艦へcopy
次回は、psxperia使ってimage作成/起動まで(要は自炊)。

https://github.com/yifanlu/PSXperia/wiki/Compatibility

なんだか、上記動作リストを眺めていると、pspocketは相当やっかいな代物っぽいですね。
popsの例があるので、泥向け謹製エミュは掛けている工数も凄いから精度も高いと踏んでいたのですが。
苦労するなら、有志開発の泥向けpsemuを活用させてもらった方が良いかも。

言われてみると、

http://www.jp.playstation.com/info/release/nr_20111208_pssuite_xperia.html

結局、これらしかテストしていないのかもな。
売女も当初は、旧suiteのしか遊べなかったんだけど、pops突っ込んだのか、後に対応され。
もはや、旧suiteのps1群は、これ以降増殖したのような記憶もないので、無かったことにされているのかな?


Linqの理不尽なあれそれ

えーと?

MySQLだとLinq to SQLが使える状態ではないので、Linq to Entitiesを使うことにした。

という前回までのお話。

で。

クエリしたものから先頭のとあるメンバと、後尾のとあるメンバを取得しようと、First()とLast()を発行したらサポートされていません的な。

エラー内容を見ると、配列アクセスで最終indexへアクセスを試み例外。

因みに、First()はサポートされていましたけど。

んー。

で、解決策というか回避策はこう。

OrderByDescending(x => x).First()

First使えるならばと、降順ソート掛けてからの先頭取得。

アホくさ。

MySQL + .NETでうんたら

久々に嵌り。

現象は、ADO.NETのEntityModelをリバースで作成し、Linq掛けると、フェッチされずにぬるぽ。

解せないのが、UnitTestプロセスでは例外が発生せずに、本プロセスで発生。
そこの差分を調べたけど、どうにもこうにも腑に落ちない。

UnitTestでは以下の通りに、MySql.Data.Entity.dllのロードに成功
--
'QTAgent.exe' (マネージ (v4.0.30319)): 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\MySql.Data.Entity.dll' が読み込まれました
--

本プロセスでは、Sytem.Data.Entity内でMySql.Data.Entity.dllをロードするところで落ちている。
--
'System.NullReferenceException' の初回例外が System.Data.Entity.dll で発生しました。
System.Transactions Critical: 0 : <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Critical"><TraceIdentifier>http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled</TraceIdentifier><Description>ハンドルされていない例外</Description><AppDomain>ConsoleTradeConverter.vshost.exe</AppDomain><Exception><ExceptionType>System.NullReferenceException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType><Message>オブジェクト参照がオブジェクト インスタンスに設定されていません。</Message>
<StackTrace>  
   場所 MySql.Data.MySqlClient.MySqlClientFactory.get_MySqlDbProviderServicesInstance()
   場所 MySql.Data.MySqlClient.MySqlClientFactory.System.IServiceProvider.GetService(Type serviceType)
--

色々と試し過ぎて吐きそうになったので、結論から。

全く解決していないけど、落ちなくなる方法は、本アプリでMySql.Data.Entity.dllを参照に加え、それもビルド時にコピーを有効にしておく。

単純にロード対象のアセンブリ検索で何かしらバグっているとしか思えないけど、致し方ない。

UnitTest側ではこんなことしていないけど、あれはテストフレームワークが読み込むライブラリだから、ちょっと事情は違うんだけどね。