Home > 2011年08月

2011年08月 Archive

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • Comments (Close): -
  • TrackBack (Close): -

Windows7で16ファイル以上を同時に開けない

  • Author : もっきゅもきゅ
  • 2011-08-31 (Wed)
  • 日記

スクリーンショットを撮るためにまとめてファイルを開こうと
複数のファイルを選択し、ダブルクリックしてみるも無反応。
右クリックメニューでは「開く(O)」のメニューも消えてます。

Googleで「windows7 複数 ファイル 同時 開けない」を検索すると、
『おしえて!goo』で「複数のファイル・フォルダを同時に開きたい」という
調べていることに近そうな項目がヒット。

中身を確認すると、どうやら「Vistaからの制限」だということ。
でも解決策の提示は無かった。

レジストリでどうにか出来るなら、よくある「レジストリでWindows高速化なんちゃら」
「レジストリなんとかテクニック」みたいなサイトかマイコミジャーナルあたりで
取り上げられていると思って期待したんですが、ちょっと検索した限り日本では
見つからない様子。

英語ならすぐに見つかるだろうと、Googleで英語キーワードにして試す。
windows7 multiple file open double click 15 registry」で検索。
『Microsoft Answers(英語)』でずばりそれらしい質問がヒット。
Opening more than 15 files with Windows Explorer doesn't work.
Mayhew Seaveyという人がマジギレ回答しているのを横目に見つつ、
Andre.Zieglerという人が答えの載っているURLを言及しているのを発見。

『Microsoft Support Online(英語)』
Context menus are shortened when more than 15 files are selected

■Cause
This is by design. These context menu items will not
appear if selecting more than 15 items to avoid
accidentally performing these actions on a large
number of files.

■Resolution
HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer
Name : MultipleInvokePromptMinimum
Type : DWORD
Default : 15 (decimal)

■More Infomation
Note: a value of 16 is interpreted as "unlimited" for
showing the options from the context menu, however it
does not allow the actual opening of the documents
selected if selecting more than 16.
To allow the opening of more than 16 documents, set
this key to a decimal value greater than the amount
of documents you wish to open.
Microsoft recommends only increasing this value to
a reasonable number in a controlled environment and
only where users really need this value increased.


以下テキトー訳。

■Cause
15より多くのファイルを同時に開いてアクシデントが
発生するのを避けるため。


■Resolution
HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer
このキーを開く。HKCUはHKEY_CURRENT_USERの略。

Name : MultipleInvokePromptMinimum
この名前で作成する。

Type : DWORD
種類はDWORD(32bit)。

Default : 15 (decimal)
値のデフォルトは15(10進数)。


■More Infomation
16を入れれば無制限と解釈され、16個以上のドキュメントを選択した状態で
右クリックメニューに開くが表示されるようになる。
しかし、実際には16より大きい個数で選択した場合は開くことが出来ない。
16個より多く開きたければ、数字を大きくすれば良い。
Microsoftとしては本当に変更が必要なユーザーだけが、適正な数字を入れて
かつそれを制御しうる環境のある場合に限り、使用することを推奨する。



Vistaは使ってないので7で初めて知ることになりましたが
このレジストリキーはデフォルトでは無い模様。
初期値は15で、キーを作成し、値を変更して再ログインか再起動で完了。
あまり大きくしてもトラブルの元なので、今回必要な20に設定しました。



  • Comments (Close): -
  • TrackBack (Close): -

TempAR 1.63 Beta 2011-08-28 21:37

URL



raing3's website (gshi.org)

raing3's website (cz.cc)

TempAR INI to BIN Language Tool
(言語ファイルコンバーター/アップデーター/アップローダー/ダウンローダー)

Update


- Updated the Japanese translation (by HARO).
■日本語言語ファイルを更新した。
(言語ファイルを使用している人はこのファイルも忘れずに更新しましょう。)


- Removed support for 6.20 TN-A and the early 6.31/6.35 PRO firmwares.
■6.20TN-Aと6.31/6.35 PROの初期バージョンへの対応を中止した。


- Works in VSH properly again
(if the home screen frame buffer can't be found the main screen
frame buffer is used and Pause Game is forced to True).
■VSHで動くようになった。


- Small bug fixes and changes.
■その他バグ修正。




  • Comments (Close): -
  • TrackBack (Close): -

TempAR - 0xC1 コードタイプ さんぷる?

  • Author : もっきゅもきゅ
  • 2011-08-28 (Sun)
  • TempAR Usage

まだTH2DTをやってます。

ウィッチというクラスはNukerのはずなのにダメージがいまいちで、
属性魔法で敵の弱点属性を突いても割合でダメージが増えるだけ。
何より詠唱時間が非常に長く、詠唱速度装備を揃える頃には
ゲームが終わってしまいます。

他のクラスと比較しても利点が無く、無属性全体攻撃無詠唱の鳳凰と
FF11よろしく弱体が付属してる忍術が使える「くノ一」だけいれば
いいんじゃね?と思ってしまいます。

「世界樹の迷宮3」の特異点定理スキルを再現してみようかと思う今日この頃。
おおよそ形は出来てますが、弱点をどうするか悩み中。
もともと弱点という属性が無いのでこちらで弱点を設定しなくてはなりません。
弱点が1つなら簡単なのですが、複数弱点だと管理が面倒くさい。
流れとしてはこんな感じ?

01.敵1の属性値ロード。
02.比較して最小値を検出。
03.最小値と同じ値が入っているアドレスをどこかにアレイでストア。
04.アドレスから属性を割り出してどこかにアレイでストア。
05.プレイヤーが使用した魔法と魔法リストを照合し属性を特定する。
06.プレイヤーの魔法属性と敵弱点属性をチェック。
07.弱点属性ならダメージなど操作。
08.敵2へループ。

耐性が均一の敵の場合、全属性が弱点ということに。
もう改造コードというか


本題に移ります。
TempARの0xC1コードタイプを使ってコードを作ってみました。
例のごとくTH2DTなのですが。


Continue reading

  • Comments (Close): -
  • TrackBack (Close): -

TempAR 1.63 Beta 2011-08-27 17:44

URL



raing3's website (gshi.org)

raing3's website (cz.cc)

TempAR INI to BIN Language Tool
(言語ファイルコンバーター/アップデーター/アップローダー/ダウンローダー)

Update



更新履歴他情報が無いので不明です。

HAROさんのブログによりますと、言語の対応項目が増えているらしく、
languageファイルを更新しないで適用し、タブを切り替えると
フリーズするそうです。


次回からの掲載は更新情報の無いマイナーバグフィックス版をスルーします。
新機能追加、致命的バグフィックスなど何らかの情報がある時に掲載することにします。
余所でいくらでもポストが早いところがあるので、何も書くことが無いのに
うちみたいな遅いところがやっても無意味かなと。



  • Comments (Close): -
  • TrackBack (Close): -

TempAR 1.63 Beta 2011-08-27 14:00

URL



raing3's website (gshi.org)

raing3's website (cz.cc)

TempAR INI to BIN Language Tool
(言語ファイルコンバーター/アップデーター/アップローダー/ダウンローダー)

Update


the problem should be fixed now. 
The 0x7 and 0x8 conditional PSPAR code types were mixed up.
■16bit条件コード 0x7と0x8が混ざっていたのを修正した。

掲示板で報告のあったMonster Hunter Freedom 2 and Unite (海外版MHP2G)で
Datelのコードが動かなかった件の修正みたいです。


  • Comments (Close): -
  • TrackBack (Close): -

TempAR 1.63 Beta 2011-08-19 22:05

URL



raing3's website (gshi.org)

raing3's website (cz.cc)

TempAR INI to BIN Language Tool
(言語ファイルコンバーター/アップデーター/アップローダー/ダウンローダー)

Update



I had been wanting to add support for multiple text files
for a while but hadn't gotten around to writing
a basic file browser type thing to select the files.
■ファイルブラウザ式にして複数のテキストファイルを読める機能を追加した。
(従来は{game-id}.txt形式の単一ファイルを決め打ちで読んでいた)


If you re-download from the link I posted above you will be able to
load multiple text files (by default no text file is loaded on boot now).
To invoke the file browser go to the credits screen and press START
then select the file you wish to load.
■もし、テキストファイルが無ければクレジット画面が表示されるだろう。
クレジット表示画面へ行き([Decoder0]タブのさらに右のこと)
STARTボタンを押してファイルブラウザを起動し、ファイルを選択して
決定ボタンを押せば、選択したファイルを読み込むことが出来る。


Limitations:
- Can only display 500 files per folder.
- Filenames must be less than ~50 characters.
- Filenames must end in .txt to be visible in the file browser.
■制限
・1フォルダに付き500ファイルまでしか表示出来ない
・ファイル名は50文字より小さくなければならない
・ファイル名は最後に「.txt」の拡張子が付いていないと
 ファイルブラウザに表示されない


The reason for the first 2 limitations is due to lack of memory
and the fact that the file names need to be cached or
otherwise scrolling becomes too slow. (50*500 = ~24.5KB used memory)
■制限1と2の理由は、ファイルネームキャッシュに確保したメモリ量を超えると
画面スクロールが遅くなるので、これを回避するためです。


■text viewer の使い方


1 TempARフォルダを開きます。
  ms0:/seplugins/TempAR/


2 TempAR配下に「text」フォルダを作成します。
  ms0:/seplugins/TempAR/text/


3 「text」フォルダの下にテキストファイルを置きます。

  文字種は、「半角カナ」「半角英数記号」が使用できます。
  エンコードは、「文字エンコード EUC」「改行コード LF」で保存します。
  ファイル名には、拡張子txtを付ければ何でも構いません。

  ms0:/seplugins/TempAR/text/ULJM-05800.txt (MHP3rdのIDの場合)
  ms0:/seplugins/TempAR/text/MHP3rd.txt (好きな名前をつけた場合)


4 TempARのクレジット画面でSTARTボタンを押してファイルブラウザを起動します。




5 読みたいファイルを選択し、決定ボタンを押して中身を表示します。




6 テキストファイルに何を書く?

  何でも良いです。
  取り扱い説明書代わりに操作方法を書いても良いですし
  攻略情報や敵データなどを載せるのもありでしょう。
  チートの数値のメモなどを書いておくと、数値を変更するときに
  便利かも知れません。


  _C0 EXP n bai
  _L 0x20050000 0x00052[840]

  800 x1
  840 x2
  880 x4
  8C0 x8
  900 x16
  940 x32




既に5日前ですが、書いてみました。
これ以外の更新内容については書いてないので分かりません。
BBSを見る限りでは5.00-M33での対策など、バグフィックスのようです。



  • Comments (Close): -
  • TrackBack (Close): -

PSVita ARM® Cortex™-A9 core

  • Author : もっきゅもきゅ
  • 2011-08-22 (Mon)
  • PSP memo

ARM系のCPUはゲーム機だとGBAやDSに使われているとか。
ほかにメジャーなところでは携帯電話、iPhone、iPad。
マイナーなところだと3DOらしいw

ARMのアセンブラなんて触ったことがないわ、と思っていたら
どうやら6502(正しくはRP2A03。ファミコンで採用)が祖先らしい。
ということはSFCの65816やPC-Engineの6280の祖先でもあるのか。

SFCなら触ったことあったな。もうすっかり忘れたけど。



ARMアーキテクチャ - Wikipedia

・伝統的なRISCのコンセプトに則り、明確な周期内に、
 概して1サイクルで実行できるようコマンドを調整している。
・全てのインストラクションを条件付きにすることができる。
・シフト演算を「データ処理」(算術演算、論理演算、レジスタ間の代入)
 インストラクションの中に織り込むことができる


特徴はこんなところか。
他には…
・wikipediaになぜか載っていないが、遅延スロットが無い。
・演算命令で演算結果をフラグに反映するか選択可能

シンプルなMIPSとだいぶ違う。
実際の命令を見ないとピンと来ない。
命令リファレンスはpdfで公式に置いてないのかな…
検索した限りではこれか?


ARM® コンパイラツールチェーン アセンブラの使用 バージョン 5.0


かなり気が早いが勉強しておこうかな。

Assembly Programming on ARM Linux




  • Comments (Close): -
  • TrackBack (Close): -

TempAR - 0xD0 コードタイプ さんぷる?

  • Author : もっきゅもきゅ
  • 2011-08-19 (Fri)
  • TempAR Usage

0xD0コードのサンプル。
分かりやすいかどうか分からないが。

■サンプル

_S *
_G TempAR Test

_C0 --- 0xD0 * 1 -------
_M 0xD3000000 0x08801000 # オフセットを08801000に設定
_M 0xD5000000 0x11111111 # レジスターに値0x11111111を設定

_M 0xC0000000 0x00000001 # ループ+1回
_M 0x40000000 0x00000001 # オフセット0+現在オフセットのアドレスの値が1より大きい時
_M 0x30000000 0x00000004 # オフセット0+現在オフセットのアドレスの値が4より小さい時

_M 0xDC000000 0x00000004 # 現在オフセットに+4
#(初回は0x08801004 2回目は0880100Cになる)
_M 0xD6000000 0x00000000 # オフセット0+現在オフセットに値を書き込む。
# その後現在オフセット+4
_M 0xDC000000 0xFFFFFFF8 # 現在オフセット-8

_M 0xD0000000 0x00000000 # 実行ステータス1つ前をロード
_M 0xDC000000 0x00000008 # 現在オフセット+8

_M 0xD2000000 0x00000000 # フルターミネータ
# (ループ終端+ループ終了時レジスタ+オフセットクリア)


_C0 --- 0xD0 * 2 -------
_M 0xD3000000 0x08801000 # オフセットを08801000に設定
_M 0xD5000000 0x11111111 # レジスターに値0x11111111を設定

_M 0xC0000000 0x00000001 # ループ+1回
_M 0x40000000 0x00000001 # オフセット0+現在オフセットのアドレスの値が1より大きい時
_M 0x30000000 0x00000004 # オフセット0+現在オフセットのアドレスの値が4より小さい時

_M 0xDC000000 0x00000004 # 現在オフセットに+4
#(初回は0x08801004 2回目は0880100Cになる)
_M 0xD6000000 0x00000000 # オフセット0+現在オフセットに値を書き込む。
# その後現在オフセット+4
_M 0xDC000000 0xFFFFFFF8 # 現在オフセット-8

_M 0xD0000000 0x00000000 # 実行ステータス1つ前をロード
_M 0xD0000000 0x00000000 # 実行ステータス1つ前をロード

_M 0xDC000000 0x00000008 # 現在オフセット+8

_M 0xD2000000 0x00000000 # フルターミネータ
# (ループ終端+ループ終了時レジスタ+オフセットクリア)
■0xD0 * 1の結果
0x08801000と0x08801008の値を見に来るので
ここに手動で数値を入れる。

0x08801000 0x00000000 # if v>1 then true else false → 0なのでfalse
# if v<4 then true else false → 0なのでtrue

0x08801004 0x00000000 # falseなので書き込まない。
0x08801008 0x00000002 # 1つ前のfalseをロード+2なのでtrue。
0x0880100C 0x00000000 # 既にfalseなのでその後がtureでも実行しない。書き込まない



■0xD0 * 2の結果

0x08801000 0x00000000 # if v>1 then true else false → 0なのでfalse
# if v<4 then true else false → 0なのでtrue

0x08801004 0x00000000 # falseなので書き込まない。
0x08801008 0x00000002 # 2つ前のステータスをロード。初期状態なのでtrue。2なのでtrue。
0x0880100C 0x11111111 # trueなので書き込む。


実行ステータスがスタックされていると考え、
0xD0が多段に並んでいるとその数だけ1つ前に戻ると考える。

ループ+条件判定のコードを組んだ場合
途中で1度でも失敗すると、それ以降のループが実行されないが
適切に0xD0を設定すると、意図したとおりにループが回る。



あと分からないコードタイプは0xC1と0xC4かな。


0xC1は0xC2と違い、アドレスに命令を書き込まないといけない。
引数で直接数値をぶち込めるので、lui oriで数値をセットしなくて良い分
コード行数を若干減らせるのが利点かな?
空きアドレスの管理が不要な0xC2の便利さが若干勝るか。

0xC4は一番謎。
使い方は一応分かったとして、使い道がさっぱり分からん。


■tests.dbより

_C0 Call Function With Arguments Codes (0xC1)
_N 0x08802000 0x00857821 # Expected Result:
_N 0x08802004 0x01E67823 # 0x08802000 = 0x00857821
_N 0x08802008 0x03E00008 # 0x08802004 = 0x01E67823
_N 0x0880200C 0xACEF0000 # 0x08802008 = 0x03E00008
_N 0xC1000004 0x08802000 # 0x0880200C = 0xACEF0000
_N 0x55555555 0x22222222 # 0x08802010 = 0x11111111
_N 0x66666666 0x08802010 #


0x08802000 addu t7, a0, a1
0x08802004 subu t7, t7, a2
0x08802008 jr ra
0x0880200C sw t7, $0000(a3)

0xC1000004 4は引数の個数
0x08802000 実行アドレス

0x55555555 a0=0x55555555
0x22222222 a1=0x22222222
0x66666666 a2=0x66666666
0x08801000 a3=0x08802010

0x08802000 t7=0x55555555+0x22222222=0x77777777
0x08802004 t7=0x77777777-0x66666666=0x11111111
0x08802008 jr ra
0x0880200C sw 0x11111111,(0x08802010)






  • Comments (Close): -
  • TrackBack (Close): -

TempAR - 0xD0コード

  • Author : もっきゅもきゅ
  • 2011-08-17 (Wed)
  • TempAR Usage

今まで有効な使い道がいまいち分かってなかったので
コードタイプ「0xD0」を使っていなかったのだが
少しテストしてみたらやっと理解できた。


Type 0xD0
Terminator
D0000000 00000000

Loads the previous execution status.
If none exists, the execution status stays at 'execute codes'.


Loads the previous execution status. の意味を今まで間違えて捉えていた。


■0xD0なし

1 条件式1
_M 0x9A000000 0x00000001 # if Pad = SELECT only

2 条件式2
_M 0x9A000000 0x00000008 # if Pad = START only

3 実行式1
_M 0x08801000 0x00000001 # store 08801000 = 00000001
_M 0xD2000000 0x00000000
■0xD0あり

1 条件式1
_M 0x9A000000 0x00000001 # if Pad = SELECT only

2 条件式2
_M 0x9A000000 0x00000008 # if Pad = START only

_M 0xD0000000 0x00000000 # Loads the previous execution status.

3 実行式1
_M 0x08801000 0x00000001 # store 08801000 = 00000001
_M 0xD2000000 0x00000000


コードは1-2-3の順に処理されるが、処理の際、
実行ステータスのtrue/falseで実行するか無視されるかが決まる。
条件式を満たせばtrueで条件式を満たさなければfalse。
条件式を単純に並べた場合、上から処理して途中で満たさないものがあれば
falseになり、次の行からは処理が実行されず、行だけを進める。

上記の例では、STARTとSELECTが押されていないと実行式1で実行されないが
STARTとSELECTの同時押しではだめで、STARTとSELECTがそれぞれ
単独で押されて、かつ同時押しされていない状態にしないといけない。
つまり実際には不可能。(同時押ししたい場合はマスクを使う)

0xD0なしの場合は、条件式2でfalseになっているので実行式1は当然書き込まない。
0xD0ありの場合は、条件式2の1つ前の条件式1のステータスをロードするので
SELECTさえ押されれば、実行式1で書き込みが達成される。

ここまではコードの説明通りなので使い始めてすぐに理解できていた。

では次のような式になっていた場合はどうだろうか。

条件式1
条件式2
条件式3

パッド分岐1
実行式1

0xD0

パッド分岐2
実行式2

0xD0

パッド分岐3
実行式3

0xD2


条件式1-2-3を全て満たしている状態でパッド分岐させたい場合には
分岐の直前に0xD0を挟めば分岐2が目的通りに動くところまでは理解できる。

分岐3は0xD0が「1つ前の実行ステータスをロード」ということから考えると
パッド分岐1の時のステータスをロードしているように思えるが実が違う。
条件式3のステータスをロードしているようだ。

「1つ前の実行ステータス」とある通り式では無く、どうやら実行ステータススタック
みたいなものを想像すれば良いみたいだ。


条件式1
条件式2
条件式3

パッド分岐1

0xD0 分岐1のステータスをリムーブし、1つ前(条件式3)の実行ステータスをロード
パッド分岐2

0xD0 分岐2のステータスをリムーブし、1つ前(条件式3)の実行ステータスをロード
パッド分岐3
0xD2


リムーブ(除去、MTGでよく出てくる単語)という表現が適当かは分からないが、
そう捉えると分かりやすい。
違う言い方をすると、0xD0がORで、使わない場合がAND。
0xD0を使えば、並列で条件式が組めるのでコード短縮に役立つ。

…自分みたいな無駄に長い変態コードを作る人にとっては\( ̄∇ ̄|||)/



  • Comments (Close): -
  • TrackBack (Close): -

ToHeart2 ダンジョントラベラーズ 真四天王召喚

  • Author : もっきゅもきゅ
  • 2011-08-13 (Sat)
  • ToHeart2 DT

ミルディンたん。

モンスター行動デザインがちょっとアトラスぽかった。
戦闘時カーソル記憶が無いとか自動戦闘が無いとか
バグが多いとか詰めの甘さがもったいないな。


Continue reading

Home > 2011年08月

Return to page top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。